先说明下脚本的用处,此脚本可用于检测进程是否在运行,并在发现进程消失/没有运行时重启进程。

脚本内容

#!/bin/sh

while :
do
    stillRunning=$(ps -ef|grep "/home/user/frp/frpc"|grep -v "grep")
    if [ "$stillRunning" ]
    then
        sleep 10
    else
        /home/user/frpc -c /home/user/frp/frpc.ini &
    fi
    sleep 10
 done

解释

stillRunning=$(ps -ef|grep "/home/user/frp/frpc"|grep -v "grep")

上面这行用来检测要监视的进程"/home/user/frp/frpc"是否正在运行。一定要有grep -v "grep",否则可能会影响到检查结果。如果没有搜索到对应的进程名的话会返回空置,使得if条件不成立,执行else后语句;否则if条件成立,执行then后的语句。

else后面的语句就是启动进程的命令,可以替换成需要的命令。sleep 10就是让监视进程暂停10秒,然后继续运行。

SRIN Linux ,

发表评论

电子邮件地址不会被公开。 必填项已用*标注