我想了解这个过程的问题是什么;当一个进程运行时,它不会返回计数。它直接进入echo “没有QMS过程发现在$ 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
任何人都可以帮助我理解。
答案 0 :(得分: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
答案 1 :(得分:0)
第一行运行ps -ef
列出所有进程,查找特定的qms_kernel
进程,其中包含前面当前目录的路径(即$PWD
部分,并且有点令人惊讶,然后过滤掉grep
命令并运行一个神秘的cut
命令来收集第6个字段。
第二行计算位数,这也是一个奇怪的数字。
if
块检查$QMS_PROCESS_COUNT
中的值是否为0。如果是,则报告“无QMS进程”,否则尝试终止(信号15,即TERM或SIGTERM)进程并报告进程已停止。