我是shell脚本编写的初学者,需要一个脚本来检查进程的状态并给我输出'运行'什么时候开始运行'什么时候下来
我尝试了下面的一个,但它不起作用:
if [ -s `/opt/reds/recycle.sh status | grep "pid"` ];
then
echo "running"
else
echo "not running"
fi
有人可以帮帮我吗?
答案 0 :(得分:5)
将if
语句更改为:
if /opt/reds/recycle.sh status | grep "pid"
then
...
fi
你可能想要沉默的grep:
-q
安静运行
-s
来取消错误消息(此处不需要,因为grep
正在从stdin
获取输入。
通常,使用if
检查命令的退出状态:
if command;then
...
fi
答案 1 :(得分:2)
如果recycle.sh
脚本完全正确实现,则应设置其退出代码以指示状态。
如果是这种情况,您应该能够观察到当状态正常时(意味着,服务正在运行)它返回零,否则返回非零。
然后,您根本不需要grep
。
if /opt/reds/recycle.sh status >/dev/null; then
echo running
else
echo not running
fi
正确编写的脚本可能还有--query
选项或类似内容(--quiet
,--silent
,--script
?),允许在此构造中使用它而不重定向输出