Я создаю выскочку для управления различными VPN-соединениями. Проблема в том, что если pppd
демон умирает, initctl
все еще думаю, что это start/running
.
Это мой текущий vpn.conf
description "VPN clients"
instance $vpn
export vpn
pppd call $vpn
Как я могу заставить выскочку понять, что если демон умирает, статус больше не работает?
Когда клиент работает, дерево процессов выглядит так:
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
Это мой сценарий Upstart для PPTP, думаю, вы можете исправить свой на основе моего. Вам нужно заменить [PEER-NAME]
с именем однорангового файла в каталоге /etc/ppp/peers
:
start on runlevel [2345]
stop on runlevel [016]
respawn
exec /usr/sbin/pppd nodetach persist call [PEER-NAME]