URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 84032
[ Назад ]

Исходное сообщение
"запуск процесса в фоне"

Отправлено Disasm , 08-Фев-09 22:15 
Есть процесс pptp и надо его запускать в фоне в одном из скриптов /etc/rc.d.
если поставить в конце команды символ & то он запустится, но через три секунды после завершения скрипта pptp падает. Как сделать так чтоб не падал?
Если запускать этот же скрипт руками в консоли то всё хорошо, а если он запускается при загрузке системы - то вот такая проблема

Содержание

Сообщения в этом обсуждении
"запуск процесса в фоне"
Отправлено ronin , 08-Фев-09 22:34 
>Есть процесс pptp и надо его запускать в фоне в одном из
>скриптов /etc/rc.d.
>если поставить в конце команды символ & то он запустится, но через
>три секунды после завершения скрипта pptp падает. Как сделать так чтоб
>не падал?
>Если запускать этот же скрипт руками в консоли то всё хорошо, а
>если он запускается при загрузке системы - то вот такая проблема
>

Может ему необходимо добавить перенаправление вывода стандартных дескрипторов STDOUT STDERR? Тоесть, добавить в конец команды запуска (но перед вимволом &) вот это:

1>/dev/null 2>&1



"запуск процесса в фоне"
Отправлено Disasm , 08-Фев-09 22:42 
всё равно падает

"запуск процесса в фоне"
Отправлено ronin , 08-Фев-09 22:45 
>всё равно падает

хоть что-то в лог пишет перед смертью?


"запуск процесса в фоне"
Отправлено Disasm , 08-Фев-09 22:54 
Feb  8 22:02:06 disasm-srv ppp[704]: Phase: Using interface: tun0
Feb  8 22:02:06 disasm-srv ppp[704]: Phase: deflink: Created in closed state
Feb  8 22:02:06 disasm-srv ppp[704]: Phase: PPP Started (direct mode).
Feb  8 22:02:06 disasm-srv ppp[704]: Phase: bundle: Establish
Feb  8 22:02:06 disasm-srv ppp[704]: Phase: deflink: closed -> opening
Feb  8 22:02:06 disasm-srv ppp[704]: Phase: deflink: Connected!
Feb  8 22:02:06 disasm-srv ppp[704]: Phase: deflink: opening -> carrier
Feb  8 22:02:07 disasm-srv ppp[704]: Phase: deflink: carrier -> lcp
Feb  8 22:02:07 disasm-srv ppp[704]: Phase: bundle: Authenticate
Feb  8 22:02:07 disasm-srv ppp[704]: Phase: deflink: his = CHAP 0x05, mine = none
Feb  8 22:02:07 disasm-srv ppp[704]: Phase: Chap Input: CHALLENGE (16 bytes from vpdn-campus-2)
Feb  8 22:02:07 disasm-srv ppp[704]: Phase: Chap Output: RESPONSE (221873)
Feb  8 22:02:07 disasm-srv ppp[704]: Phase: Chap Input: SUCCESS
Feb  8 22:02:07 disasm-srv ppp[704]: Phase: deflink: lcp -> open
Feb  8 22:02:07 disasm-srv ppp[704]: Phase: bundle: Network
Feb  8 22:02:07 disasm-srv ppp[704]: Warning: 0.0.0.0/0: Change route failed: errno: No such process
Feb  8 22:02:07 disasm-srv ppp[704]: Warning: ff02:4::/32: Change route failed: errno: Network is unreachable


В это время работает сеть. Если в скрипте поставить паузу, то сеть будет работать всё это время.
И тут скрипт завершается...

Feb  8 22:02:13 disasm-srv ppp[704]: Phase: Signal 1, terminate.
Feb  8 22:02:13 disasm-srv ppp[704]: Phase: bundle: Terminate
Feb  8 22:02:13 disasm-srv ppp[704]: Phase: deflink: open -> lcp
Feb  8 22:02:13 disasm-srv ppp[704]: Warning: 0.0.0.0/0: Change route failed: errno: No such process
Feb  8 22:02:13 disasm-srv ppp[704]: Warning: ff02:4::/32: Change route failed: errno: Network is unreachable
Feb  8 22:02:13 disasm-srv ppp[704]: Phase: deflink: Disconnected!
Feb  8 22:02:13 disasm-srv ppp[704]: Phase: deflink: Connect time: 7 secs: 920 octets in, 546419 octets out
Feb  8 22:02:13 disasm-srv ppp[704]: Phase: deflink: 13 packets in, 721 packets out
Feb  8 22:02:13 disasm-srv ppp[704]: Phase:  total 78191 bytes/sec, peak 136549 bytes/sec on Sun Feb  8 22:02:09 2009
Feb  8 22:02:14 disasm-srv ppp[704]: Phase: deflink: lcp -> closed
Feb  8 22:02:14 disasm-srv ppp[704]: Phase: bundle: Dead
Feb  8 22:02:14 disasm-srv ppp[704]: Phase: PPP Terminated (normal).

telecom2_start()
{
        echo "Starting PPTP connection to MIPT UPCHK"

        routes_add > /dev/null

        /sbin/ifconfig tun0 down
        /sbin/ifconfig tun0 destroy

        date >> /tmp/pp.log
        /usr/bin/netstat -rn >> /tmp/pp.log
        echo >> /tmp/pp.log

        $pptp vpdn-campus.mipt.ru TELECOM 1>/dev/null 2>&1 &

        /bin/sleep 4

        $route delete -host 193.125.142.233
        $route delete -host 193.125.142.246

        /usr/local/bin/php /usr/MYFILES/ip_update/update.php

        date

        return 0
}


сеть падает через три секунды, после даты, выведенной командой date


"запуск процесса в фоне"
Отправлено ronin , 10-Фев-09 10:43 
>Feb  8 22:02:13 disasm-srv ppp[704]: Phase: Signal 1, terminate.
>Feb  8 22:02:13 disasm-srv ppp[704]: Phase: bundle: Terminate
>Feb  8 22:02:13 disasm-srv ppp[704]: Phase: deflink: open -> lcp
>Feb  8 22:02:13 disasm-srv ppp[704]: Warning: 0.0.0.0/0: Change route failed: errno:
>No such process
>Feb  8 22:02:13 disasm-srv ppp[704]: Warning: ff02:4::/32: Change route failed: errno:
>Network is unreachable
>Feb  8 22:02:13 disasm-srv ppp[704]: Phase: deflink: Disconnected!
>Feb  8 22:02:13 disasm-srv ppp[704]: Phase: deflink: Connect time: 7 secs:
>920 octets in, 546419 octets out

Не нравятся мне эти варнинги по поводу "Change route failed"... А можно посмотреть на ррр-интерфейс и таблицу маршрутизации тачки в момент когда коннект ещё держится?


"запуск процесса в фоне"
Отправлено Disasm , 10-Фев-09 14:34 
>Не нравятся мне эти варнинги по поводу "Change route failed"... А можно
>посмотреть на ррр-интерфейс и таблицу маршрутизации тачки в момент когда коннект
>ещё держится?

Эти строчки есть и при запуске скрипта из консоли, когда всё работает.

tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> metric 0 mtu 1500
    inet 81.5.101.51 --> 81.5.90.73 netmask 0xffffffff
    Opened by PID 704

Internet:
Destination        Gateway            Flags    Refs      Use  Netif Expire
default            81.5.90.73         UGS         0        0   tun0
10.0.0.0/8         10.55.112.1        UGS         0        0    rl0
10.55.112.0/23     link#1             UC          0        0    rl0
10.55.112.1        00:11:5d:bd:b3:52  UHLW        9        0    rl0   1196
81.5.64.0/20       10.55.112.1        UGS         0        0    rl0
81.5.88.0/22       10.55.112.1        UGS         0        0    rl0
127.0.0.1          127.0.0.1          UH          0        0    lo0
172.16.0.0/12      10.55.112.1        UGS         0        0    rl0
192.168.0.0/16     10.55.112.1        UGS         0        0    rl0
192.188.189.0/24   10.55.112.1        UGS         0        0    rl0
193.125.142.0/23   10.55.112.1        UGS         0       18    rl0
194.85.80.0/22     10.55.112.1        UGS         0        0    rl0

Последняя выведенная в мой лог дата:
Tue Feb 10 14:29:02 MSK 2009

а в /var/log/ppp.log такое:

Feb 10 14:28:58 disasm-srv ppp[704]: Phase: Using interface: tun0
Feb 10 14:28:58 disasm-srv ppp[704]: Phase: deflink: Created in closed state
Feb 10 14:28:58 disasm-srv ppp[704]: Phase: PPP Started (direct mode).
Feb 10 14:28:58 disasm-srv ppp[704]: Phase: bundle: Establish
Feb 10 14:28:58 disasm-srv ppp[704]: Phase: deflink: closed -> opening
Feb 10 14:28:58 disasm-srv ppp[704]: Phase: deflink: Connected!
Feb 10 14:28:58 disasm-srv ppp[704]: Phase: deflink: opening -> carrier
Feb 10 14:28:59 disasm-srv ppp[704]: Phase: deflink: carrier -> lcp
Feb 10 14:28:59 disasm-srv ppp[704]: Phase: bundle: Authenticate
Feb 10 14:28:59 disasm-srv ppp[704]: Phase: deflink: his = CHAP 0x05, mine = none
Feb 10 14:28:59 disasm-srv ppp[704]: Phase: Chap Input: CHALLENGE (16 bytes from vpnd-1-7201)
Feb 10 14:28:59 disasm-srv ppp[704]: Phase: Chap Output: RESPONSE (DISASM)
Feb 10 14:29:00 disasm-srv ppp[704]: Phase: Chap Input: SUCCESS
Feb 10 14:29:00 disasm-srv ppp[704]: Phase: deflink: lcp -> open
Feb 10 14:29:00 disasm-srv ppp[704]: Phase: bundle: Network
Feb 10 14:29:00 disasm-srv ppp[704]: Warning: 0.0.0.0/0: Change route failed: errno: No such process
Feb 10 14:29:00 disasm-srv ppp[704]: Warning: ff02:4::/32: Change route failed: errno: Network is unreachable
Feb 10 14:29:04 disasm-srv ppp[704]: Phase: Signal 1, terminate.
Feb 10 14:29:04 disasm-srv ppp[704]: Phase: bundle: Terminate
Feb 10 14:29:04 disasm-srv ppp[704]: Phase: deflink: open -> lcp
Feb 10 14:29:04 disasm-srv ppp[704]: Warning: 0.0.0.0/0: Change route failed: errno: No such process
Feb 10 14:29:04 disasm-srv ppp[704]: Warning: ff02:4::/32: Change route failed: errno: Network is unreachable
Feb 10 14:29:04 disasm-srv ppp[704]: Phase: deflink: Disconnected!
Feb 10 14:29:04 disasm-srv ppp[704]: Phase: deflink: Connect time: 6 secs: 920 octets in, 846 octets out
Feb 10 14:29:04 disasm-srv ppp[704]: Phase: deflink: 13 packets in, 13 packets out
Feb 10 14:29:04 disasm-srv ppp[704]: Phase:  total 294 bytes/sec, peak 339 bytes/sec on Tue Feb 10 14:29:02 2009
Feb 10 14:29:04 disasm-srv ppp[704]: Phase: deflink: lcp -> closed
Feb 10 14:29:04 disasm-srv ppp[704]: Phase: bundle: Dead
Feb 10 14:29:04 disasm-srv ppp[704]: Phase: PPP Terminated (normal).

Тут всё-таки думаю не в сети проблема.


"запуск процесса в фоне"
Отправлено LS , 25-Фев-09 07:40 
>[оверквотинг удален]
>>No such process
>>Feb  8 22:02:13 disasm-srv ppp[704]: Warning: ff02:4::/32: Change route failed: errno:
>>Network is unreachable
>>Feb  8 22:02:13 disasm-srv ppp[704]: Phase: deflink: Disconnected!
>>Feb  8 22:02:13 disasm-srv ppp[704]: Phase: deflink: Connect time: 7 secs:
>>920 octets in, 546419 octets out
>
>Не нравятся мне эти варнинги по поводу "Change route failed"... А можно
>посмотреть на ррр-интерфейс и таблицу маршрутизации тачки в момент когда коннект
>ещё держится?

pptpd НЕ МОЖЕТ изменять существующий default route. пользуй скрипты ip-up, ip-down, чтоб настраивать роутинг вручную в этом случае.


"запуск процесса в фоне"
Отправлено LS , 25-Фев-09 07:37 
>Есть процесс pptp и надо его запускать в фоне в одном из
>скриптов /etc/rc.d.
>если поставить в конце команды символ & то он запустится, но через
>три секунды после завершения скрипта pptp падает. Как сделать так чтоб
>не падал?
>Если запускать этот же скрипт руками в консоли то всё хорошо, а
>если он запускается при загрузке системы - то вот такая проблема
>

screen -d -m -S имя_скрина команда

к примеру делаем shell-скрипт на запуск соединения с именем provider и далее:

screen -d -m -S callprovider /где/shell-скрипт_лежит/provider

PS man screen - тебе это надо
PSS кстати если хочешь чтоб соединение до провайдера постоянно "тыкалось", то не забудь крикнуть pppd опции "persist" и "maxfail=0" для своего соединения. иначе оно и в скрине ткнется, отвалится и на этом все кончится
PSS все же кажется у тебя линух - вот вызов скрипта provider и воткни в /etc/rc.d/rc.local. с теми опциями pppd, что я сказал, при обрыве связи с провом оно все равно будет стучаться, без всяких дополнительных стараний от тебя