发生了一些奇怪的行为,让我觉得可能发生了一些事情......
所以我有一个由 cron 执行的 shell 脚本。基本上它是为了检查 Node.js 是否正在运行。如果是这样,请记录日期...如果不是,则不记录任何内容!在我构建它时,我测试了它并看到它在节点脚本运行时记录,而在它停止运行时没有记录......
最近我知道 Node 宕机了,并认为这是检查脚本是否完成其应做的事情的绝佳机会。它didnt!还有它does not... :(
这是脚本:
#!/bin/bash
if ps -Al | grep -v grep | grep -q node
then
date > /etc/nodeCheck.log
else
date > /dev/null
fi
该 .sh 的权限正确,使用的路径存在,正在运行
$ps -A | grep -v grep | grep -q node
不返回任何内容并且
$echo $?
1
那么它不应该去 else 块吗? Node是开机后启动的进程。无论是由 cron 运行还是由我通过 SSH 运行时,shell 脚本都无法正常工作。
我在这里错过了一些基本的东西吗?
TIA
Niko
除非你在跑步BSD ps
,你应该能够使用-C
旗帜或pgrep
-C cmdlist Select by command name. This selects the processes whose executable
name is given in cmdlist.
例如,
if ps -C node > /dev/null
then
date > /etc/nodeCheck.log
else
date > /dev/null
fi
or
if pgrep node > /dev/null
then
date > /etc/nodeCheck.log
else
date > /dev/null
fi
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)