0

e我想了解这个过程有什么问题;当一个进程正在运行时,它不会返回计数。它直接回显“No QMS process found running on $PWD”这种情况。

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

任何人都可以帮助我理解这一点。

4

2 回答 2

1

这种方法怎么样:

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-05T19:56:07.423 回答
0

第一行运行ps -ef列出所有进程,查找特定qms_kernel进程,其前面有当前目录的路径(这是$PWD部分,有点令人惊讶),然后过滤掉grep命令并运行一个神秘的cut命令来收集第 6 个字段。

第二行计算位数,这也有点奇怪。

if块检查值是否$QMS_PROCESS_COUNT为 0。如果是,它会报告“无 QMS 进程”,否则会尝试终止(信号 15,又称 TERM 或 SIGTERM)进程并报告进程已停止。

于 2013-04-05T19:38:22.100 回答