如果它死了怎么重新运行 - Linux

时间:2014-11-07 07:44:24

标签: linux shell embedded embedded-linux

任何人都可以让我知道如果它再次死亡,如何再次自动重新运行该过程。下面是我的代码,我累了,但它给了我一个错误:

已编辑的代码:

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。剂量意味着我的其他部分代码继续执行?如果是,我需要做些什么改变来阻止它?

可以请任何人帮助我吗?

1 个答案:

答案 0 :(得分:3)

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

while :; do command; done

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

until command; do :; done