Linux中若一个程序没有守护进程,
那么意外退出之后就无法自我重启,
这时候,一个定时运行的脚本便可以帮我们解决这个问题。

比如:

#!/bin/sh
# 自动检查 UDP2RAW/TINYVPN 是否运行中,没有运行就启动.
# 脚本时间:2018-05-03

UDP2RAW=`ps -w|grep udp2raw|grep -v grep|wc -l`
TINYVPN=`ps -w|grep tinyvpn|grep -v grep|wc -l`

if [ ${TINYVPN} -eq 0 ];then
    tinyvpn -c -r127.0.0.1:1111 -f20:5 -k vpn --sub-net 10.0.10.0  &> /dev/null ;
fi

if [ ${UDP2RAW} -eq 0 ];then
    udp2raw -c -l127.0.0.1:1111 -r*.*.*.*:53 -a -k vpn --raw-mode faketcp &> /dev/null ;    
fi