找回密码
 加入我们
搜索
      
查看: 3215|回复: 19

[软件] ESXi开启SSH终端登录上去执行 ps -ef | grep xxx.sh 为什么提示命令错误?

[复制链接]
发表于 2024-5-5 21:21 | 显示全部楼层 |阅读模式
ESXi开启SSH服务,用终端登录上去后运行了一个脚本 /vmfs/volumes/VMdataStore/ACPowerCheck/ping_check.sh > /dev/null

之后想终止他,但因为是被另一个脚本调用运行的,无法用Ctrl+C快捷键终止,网上查资料说是可以用 ps -ef | grep ping_check.sh 命令查找该脚本的进程ID,然后用kill命令杀掉进程,不解的是执行了这个命令却提示 ps: invalid option -- 'e' 无效选项参数,详见下图:

捕获ps -ef grep ping_check.JPG
请问,哪里书写不正确吗?
发表于 2024-5-5 21:32 来自手机 | 显示全部楼层
虽然但是  算了有点不想解释,楼下来吧。
发表于 2024-5-5 21:39 | 显示全部楼层
你这问题图上不是都给你答案了么
发表于 2024-5-5 22:20 | 显示全部楼层
人家都给你列出可用命令了, 还需要问?
发表于 2024-5-5 23:16 | 显示全部楼层
没人直接回答我回答你吧
直接翻译错误就是无效的参数e,你也可以直接从下面的ps的帮助看到,系统的中的ps程序就没有e这个参数
不同系统的程序可能参数的数量和定义都是不一样,不要直接抄别人的命令,也要会看错误输出。
 楼主| 发表于 2024-5-5 23:37 | 显示全部楼层
ckloop 发表于 2024-5-5 22:20
人家都给你列出可用命令了, 还需要问?

找到原因了,我知道只能用他支持的那几项命令,之所以改用ps -c | grep ping_check.sh也查找不到任何内容是因为ping_check.sh这个关键字检索不到相匹配的,缩短关键字用ping就查找到了

捕获ps -ef grep ping_check(2).JPG

然后用对应进程的CID值,kill -9 2444913成功终止了该脚本进程

捕获ps -ef grep ping_check(3).JPG

想不明白,明明结果中有/bin/sh /vmfs/volumes/VMdataStore/ACPowerCheck/ping_check.sh全部路径名称,为什么用关键字ping_check.sh搜索不到,必须用简短的ping才能查找出来
发表于 2024-5-5 23:44 | 显示全部楼层
红色狂想 发表于 2024-5-5 23:37
找到原因了,我知道只能用他支持的那几项命令,之所以改用ps -c | grep ping_check.sh也查找不到任何内容 ...

可能是有特殊字符吧,用单引号括起来试试
ps -c|grep 'xxxx'
发表于 2024-5-6 06:22 | 显示全部楼层
红色狂想 发表于 2024-5-5 23:37
找到原因了,我知道只能用他支持的那几项命令,之所以改用ps -c | grep ping_check.sh也查找不到任何内容 ...


大佬,从你第一个截图看,grep ping_check.sh是查到了,因为管道后面wc -l结果是3,表明匹配上了。
这里匹配不到,仔细看下截图,你grep的是power_ping.sh,应该是笔误写错了。。。
发表于 2024-5-6 06:25 来自手机 | 显示全部楼层
这个版本的ps没有e参数
发表于 2024-5-6 10:44 | 显示全部楼层
楼主还是比我厉害的,我都不会用自动脚本,每次都是要ssh连上去手动运行一下命令。每天运行几次。关了ssh窗口就停止了,伤脑经啊
发表于 2024-5-6 13:58 来自手机 | 显示全部楼层
九天御风 发表于 2024-5-6 10:44
楼主还是比我厉害的,我都不会用自动脚本,每次都是要ssh连上去手动运行一下命令。每天运行几次。关了ssh窗 ...

crontab不能用吗
 楼主| 发表于 2024-5-6 15:09 | 显示全部楼层
yajian2 发表于 2024-5-6 06:25
这个版本的ps没有e参数

是HPE-ESXi-6.7.0-Update3-19195723-iso-Gen9plus-670.U3.10.9.0.8 (Hewlett Packard Enterprise)版,估计内部一些命令是他自己实现的,不但没有e参数,f也没有
 楼主| 发表于 2024-5-6 15:17 | 显示全部楼层
九天御风 发表于 2024-5-6 10:44
楼主还是比我厉害的,我都不会用自动脚本,每次都是要ssh连上去手动运行一下命令。每天运行几次。关了ssh窗 ...

我也是照抄别人的,懂的地方就根据需求自己改改,不懂的就问。脚本自动运行只要在代码中加个sleep定时器事件就可以了
 楼主| 发表于 2024-5-6 21:53 | 显示全部楼层
dsxl 发表于 2024-5-6 06:22
大佬,从你第一个截图看,grep ping_check.sh是查到了,因为管道后面wc -l结果是3,表明匹配上了。
这里 ...

哈哈,感谢提醒,还真是忙中出错笔误写错脚本文件名了,而且不单是ps -c | grep查询写错了,那个ping_daemon.sh守护进程脚本里的ps -c | grep查询也忘记改正了,我说怎么条件判断失灵了呢。。。今天再次重复昨天的操作,终于正常了。其实还有一个常识性的问题没弄清楚,就是一旦退出SSH终端,之前运行的脚本就终止了,这样还上哪儿查询去呀
看来要想让脚本在后台一直运行,要么临时用用nohup命令,要么添加设置cron计划任务,在ESXi启动时调用脚本运行

捕获ps -ef grep ping_check(4).JPG
 楼主| 发表于 2024-5-6 21:56 | 显示全部楼层
yyu0378 发表于 2024-5-5 23:44
可能是有特殊字符吧,用单引号括起来试试
ps -c|grep 'xxxx'

搞明白了,不是特殊字符的问题,具体详见14#楼的回帖……
 楼主| 发表于 2024-5-6 21:59 | 显示全部楼层
九天御风 发表于 2024-5-6 10:44
楼主还是比我厉害的,我都不会用自动脚本,每次都是要ssh连上去手动运行一下命令。每天运行几次。关了ssh窗 ...

你可以参考一下这篇文章,Linux nohup命令用法详解
发表于 2024-5-7 10:16 | 显示全部楼层
红色狂想 发表于 2024-5-6 21:59
你可以参考一下这篇文章,Linux nohup命令用法详解

那问下楼主,怎么样才能在关掉SSH登录以后让它还是自动在一个目录下每隔几分钟运行一次cargo run
 楼主| 发表于 2024-5-7 16:35 | 显示全部楼层
九天御风 发表于 2024-5-7 10:16
那问下楼主,怎么样才能在关掉SSH登录以后让它还是自动在一个目录下每隔几分钟运行一次cargo run ...

你这个需求,基本和我想实现停电ESXi自动关机一样嘛,这篇帖子中有现成的实例代码可以修改利用 https://www.chiphell.com/thread-2602741-1-1.html
发表于 2024-5-7 20:17 | 显示全部楼层
红色狂想 发表于 2024-5-7 16:35
你这个需求,基本和我想实现停电ESXi自动关机一样嘛,这篇帖子中有现成的实例代码可以修改利用 https://w ...

看不懂代码。。。。
 楼主| 发表于 2024-5-7 21:04 | 显示全部楼层
九天御风 发表于 2024-5-7 20:17
看不懂代码。。。。

不清楚你是什么系统,每隔几分钟运行一次cargo run要实现什么功能
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

Archiver|手机版|小黑屋|Chiphell ( 沪ICP备12027953号-5 )沪公网备310112100042806 上海市互联网违法与不良信息举报中心

GMT+8, 2025-4-28 04:10 , Processed in 0.012928 second(s), 6 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2007-2024 Chiphell.com All rights reserved.

快速回复 返回顶部 返回列表