我有这个脚本
#!/bin/bash
npid=$(pgrep -f procname | wc -l)
echo $npid
if [ $npid -lt 3 ];then
service procname start;
fi
当procname
正在运行时,它会正常显示$npid
的正确数字。当没有procname
运行时,它会失败。它应该返回零,但它返回npid=3
,正好是3.我也看到同样的问题ps auxw | grep procname | grep -v grep | wc -l
。
一些简单的错误我只是想不通,有什么建议吗?
* 编辑
# This returns nothing if therisn't a process name poopit running
pgrep -f poopit
# In the case when no process running, below returns zero if typed on a bash cmd line
pgrep -f poopit | wc -l
# If running,
pgrep -f poopit | wc -l
17
# If running, the script $npid shows
19