脚本检查进程和重新启动程序,如果没有find

我正在使用这个检查脚本,看看是否一个名为CCcam的软件包正在运行,如果不是,请重新启动它。

#!/bin/sh process=`ps auxwww | grep CCcam | grep -v grep | awk '{print $1}'` if [ -z "$process" ]; then echo "Couldn't find CCcam running. Restarting server-binary" >> /var/cccamlog/cccam.check echo && date >>/var/cccamlog/cccam.check /usr/local/bin/CCcam -d >> /var/cccamlog/CCcam.log & else echo "CCcam is still OK!" >> /var/cccamlog/cccam.check fi 

该脚本正在报告“CCcam还行!”

但它没有运行,如果我使用这个命令search进程ps x |grep -v grep |grep -c CCcam ,我得到0,所以我知道进程没有运行。

还有什么其他的因素可以让我想起CCcam正在运行的检查脚本吗? 例如,程序崩溃/停止后,脚本是否可以继续存在某种标签?

从另一个testing我得到..错误:CCcam仍然运行与PID:

 if pidof -s CCCam > /dev/null; then echo 'It is already running!' else echo 'process not found...' fi 

在这种情况下,您也可以使用pgrep 。 它在proc表中查找进程名称CCCam。

 if [[ $(pgrep CCCam) ]]; then echo "CCCam is running"; else echo "Not Running, so I must do something"; # DO something .... fi