我想知道是否可以在一行上重写下面的这个脚本?可能与||
?
ps auxw | grep nagios-nrpe-server | grep -v grep > /dev/null
if [ $? != 0 ]
then
/etc/init.d/nagios-nrpe-server start > /dev/null
fi
我试过ps auxw | grep nagios-nrpe-server | grep -v grep > /dev/null || /etc/init.d/nagios-nrpe-server start
了,但它一直在重启服务,即使它正在运行..
您需要切换 grep 语句。您要过滤掉的第二条语句
grep
将始终成功,因为它始终存在。所以,首先过滤掉 grep 然后检查进程:
根据Debian 软件包列表,nagios-nrpe-server 的二进制文件刚刚被调用
nrpe
,所以我替换了它。使用
pgrep
:或使用子外壳:
从
pgrep(1)
手册页:如果进程名不是
nrpe
,则需要将参数 替换为pgrep
实际进程名。