0

我正在尝试在 Shell 脚本中创建一个监视脚本。当特定进程/线程不可用时,我必须启动一个永远不会结束的后台进程。当我手动运行我的监控脚本时,这工作正常。但是,此监控脚本必须每 10 分钟运行一次(我尝试使用 crontab 进行调度)。现在,问题是如果通过 crontab 调用脚本,则监控脚本中的后台进程没有运行。

任何帮助表示赞赏!如果它是免费的,我也愿意使用任何其他 Linux 调度程序。

监控脚本伪代码如下:

#!/bin/sh
backgroundProcessCount=`ps -ef | grep backgroundProcess | grep -v grep | wc -l`
    echo $backgroundProcessCount
    #### Start if not already running
    if [ $backgroundProcessCount-eq 0 ]
    then
            echo Background Process is not running!!!
            sh /usr/share/bin/backgroundProcess.sh
            echo Background Process....
    else
            echo Background Process NOT Started!!!!
    fi

谢谢!

4

1 回答 1

1

您还可以考虑记录脚本上可能出现的错误,如下所示:

#!/bin/sh
{
    backgroundProcessCount=`ps -ef | grep backgroundProcess | grep -v grep | wc -l`
    echo $backgroundProcessCount
    #### Start if not already running
    if [ $backgroundProcessCount-eq 0 ]
    then
            echo Background Process is not running!!!
            sh /usr/share/bin/backgroundProcess.sh
            echo Background Process....
    else
            echo Background Process NOT Started!!!!
    fi
} >/var/log/something 2>&1

这可能会帮助您找到阻止后台进程运行的原因。

于 2013-08-27T22:20:26.250 回答