关于* nix ps -ef命令。我们在较旧的AIX上有许多shell脚本,它们使用ps -ef命令搜索并查看特定进程“name”当前是否正在运行。我看到它的典型用法:
ps -ef | grep java | grep RUDaemon | grep -v grep
rc=$?
if (( rc > 0 ))
then
...do process-exists stuff...
else
...do process-does-not-exists stuff...
fi
事情是,代码似乎不适用于我们较新的Linux ...即,rc现在似乎返回命令本身的简单“状态”结果,而不是它找到的进程数。 ..由于我没有写原始脚本,我不确定原始代码EVER是否正常工作。但是要求声明我们需要使用native * nix命令,因此我按照以下方式重新编写代码,并针对“存在”和“不存在”条件进行测试。
rc=$(ps -ef | grep java | grep RUDaemon | grep -v grep | wc -l)
if (( rc > 0 ))
then
...do process-exists stuff...
else
...do process-does-not-exists stuff...
fi
我的问题是,ps -ef的正确用法是什么来发现使用特定名称或部分名称运行的进程数?
tia,Adym
答案 0 :(得分:0)
因为您不仅要发现...运行具有特定名称的进程,而且还具有特定的参数,所以显示的是基本用法。但可以优化:
ps -ef | grep java | grep RUDaemon | grep -v grep
可以替换为
ps -fCjava | grep RUDaemon
如果确实需要在参数中使用java
的{{1}}进程。