eI想要了解这个进程的问题所在;它没有在一个进程运行时返回计数。它直接进入回显“没有发现运行在$PWD上的QMS进程”这个条件。
QMS_PROCESS=`ps -ef | grep $PWD/qms_kernel | grep -v grep | cut -f6 -d' '`
QMS_PROCESS_COUNT=`echo $QMS_PROCESS | egrep [0-9] | wc -c`
if [ $QMS_PROCESS_COUNT -eq 0 ]
then
echo "No QMS process found running on $PWD"
else
kill -15 $QMS_PROCESS
echo "QMS process $QMS_PROCESS stopped on $PWD"
fi有谁能帮我理解这件事吗。
发布于 2013-04-05 19:56:07
这种方法是怎样的:
QMS_PROCESS=`pidof "$PWD/qms_kernel"`
if [ -z "$QMS_PROCESS" ]; then
echo "No QMS process found running on $PWD"
else
kill -15 $QMS_PROCESS
echo "QMS process ($QMS_PROCESS) stopped on $PWD"
fi发布于 2013-04-05 19:38:22
第一行运行ps -ef来列出所有进程,查找一个特定的qms_kernel进程,该进程的路径位于其前面的当前目录(这是$PWD部分,有点令人惊讶),然后过滤掉grep命令并运行一个神秘的cut命令来收集第6个字段。
第二行计算数字数,这也是一个小奇数。
if块检查$QMS_PROCESS_COUNT中的值是否为0。如果是,则报告“无QMS流程”,并以其他方式试图终止进程(信号15,也称为术语或SIGTERM)进程(Es),并报告进程已停止。
https://stackoverflow.com/questions/15841701
复制相似问题