Назад | Перейти на главную страницу

Скрипт выскочки pppd

Я создаю выскочку для управления различными 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]