【问题标题】:How to rerun the process if it dies - Linux如果进程死亡,如何重新运行进程 - Linux
【发布时间】:2014-11-07 07:44:24
【问题描述】:

如果它死了,谁能告诉我如何再次自动重新运行该过程。下面是我厌倦的代码,但它给了我一个错误:

编辑代码:

commandpid=`$busyboxValue pidof command`
echo ${commandpid} > /sdcard/CommandProcess.txt
if [ $commandpid -gt 0 ]
then
    echo -16 > /proc/$commandpid/oom_adj
    echo -1000 > /proc/$commandpid/oom_score_adj
fi

while [ true ]
do
    echo "PID $commandpid"
    if [ ps -p $commandpid > /dev/null ]
    then
        echo "[$(date)] :Process is already running with PID $commandpid"
    else
        echo "[$(date)] :Process is not running"
        /data/local/command 1200 &
        commandpid=`$busyboxValue pidof command`
        echo ${commandpid} > /sdcard/CommandProcess.txt
    fi
    sleep 10
done

我已经更新了代码,但仍然使用上面的代码,我得到了多个进程 ID。这是否意味着我的 else 部分代码正在继续执行?如果是,我需要做哪些改变来阻止它?

请任何人帮助我吗?

【问题讨论】:

    标签: linux shell embedded embedded-linux


    【解决方案1】:

    重复运行命令,无论退出状态如何:

    while :; do command; done
    

    重复运行命令直到成功退出:

    until command; do :; done
    

    【讨论】:

      最近更新 更多