Скрипт запуска Bash, который открывает PPP и затем выполняет отложенную команду - как? - PullRequest
0 голосов
/ 29 июня 2011

У меня есть скрипт bash, который я хочу запустить при запуске (Kubuntu 11.04), который открывает VPN моей компании.Клиент VPN в KDE не любит этот VPN, поэтому мне нужно сделать это вручную.Он открывает соединение ppp0, а затем добавляет IP-маршрут.Вот в чем проблема: мне нужно выполнить команду pppd call и через 5 секунд добавить маршрут ip.У меня есть команды просто отлично, и выполнение этих двух команд отдельно в двух различных сеансах оболочки работает прекрасно;Моя проблема в том, что команда pppd call запускает процесс ppp0, и если я не хочу завершить этот процесс, я не могу запустить команду ip route IN SAME SCRIPT при запуске.

Могу ли я:

(1) каким-то образом связать эти две команды?

(2) написать три сценария;сценарий контроллера, сценарий pppd и сценарий ip route?

(3) Делать это без всяких ошибок?

1 Ответ

1 голос
/ 29 июня 2011

нельзя просто поместить процесс pppd в фоновый режим, как

function is_pppd_working {
    # do some test to check pppd is doing what it's meant to
}

function setup_route {
    # do your ip route stuff
}

pppd > somelogfile.log 2>&1 &
sleep 5
PPD_IS_WORKING=$(is_pppd_working)
if [ ${PPD_IS_WORKING} ]
then
    setup_route
else
    # uh oh!!
fi
...