我正在创建一个 upstart conf 来管理不同的 VPN 连接。问题是,如果pppd
守护进程死机,initctl
仍然认为它是start/running
。
这是我现在的vpn.conf
description "VPN clients"
instance $vpn
export vpn
pppd call $vpn
我怎样才能让 upstart 明白,如果守护进程死亡,状态就不再运行?
当客户端运行时,进程树如下所示:
root 30502 1 0 Aug11 ? S 0:00 pppd call 162.xx.yy.42
root 30503 30502 0 Aug11 ? S 0:00 \_ sh -c pptp 162.xx.yy.42 --nolaunchpppd
root 30504 30503 0 Aug11 ? S 0:07 \_ pptp 162.xx.yy.42 --nolaunchpppd
答案1
这是我的 PPTP Upstart 脚本,我认为您可以根据我的脚本来修复您的脚本。您需要将 替换[PEER-NAME]
为目录中对等文件的名称/etc/ppp/peers
:
start on runlevel [2345]
stop on runlevel [016]
respawn
exec /usr/sbin/pppd nodetach persist call [PEER-NAME]