我试图检查一个进程(假设它被称为some_process)是否正在服务器上运行。如果是,则返回1,否则返回0。
这是我使用的命令,但它只工作部分(更多信息下面)。注意,我需要在一行中写脚本。
ps aux | grep some_proces[s] > /tmp/test.txt && if [ $? -eq 0 ]; then echo 1; else echo 0; fi
注意:some_proces [s]中的[s]是为了防止grep返回本身。
如果some_process正在运行,那么“1”被回显,这是好的。但是,如果some_process未运行,则不会回显。
Arghhh。没有必要明确地检查$?做就是了:
ps aux | grep some_proces[s] > /tmp/test.txt && echo 1 || echo 0
注意,这依赖于echo不失败,这当然不能保证。更可靠的写法是:
if ps aux | grep some_proces[s] > /tmp/test.txt; then echo 1; else echo 0; fi