- Умирает скрипт из автозапуска, Аноним, 18:18 , 09-Окт-20 (1)
> (старт через init.d , все это в BuzyBox).в inittab добавь :2345:respawn:/путь/кскрипту будет работать вечно
- Умирает скрипт из автозапуска, dvl, 11:44 , 12-Окт-20 (3)
>> (старт через init.d , все это в BuzyBox). > в inittab добавь > :2345:respawn:/путь/кскрипту > будет работать вечно Спасибо за ответ, но inittab в системе нет: /etc # ls TZ hosts passwd resolv.conf components.xml localtime ppp services cpe.pem modules.autoload preinit shells devices mtab profile uci-defaults group nginx protocols wlan host.conf nsswitch.conf rc.common добавил пустой inittab со строкой :2345:respawn:/opt/root/my_script не запустился вовсе Что не так сделал?
- Умирает скрипт из автозапуска, Аноним, 19:17 , 14-Окт-20 (12)
> Спасибо за ответ, но inittab в системе нет: Странно, это что за разновидность врт такая ?
- Умирает скрипт из автозапуска, dvl, 14:06 , 12-Окт-20 (5)
>> (старт через init.d , все это в BuzyBox). > в inittab добавь > :2345:respawn:/путь/кскрипту > будет работать вечно вычистил нутро у скрипта, оставил только цикл: #!/bin/sh sleep=15 while true do sleep $sleep done Умирает , как и раньше.
- Умирает скрипт из автозапуска, Licha Morada, 20:29 , 09-Окт-20 (2)
> При запуске из консоли - работает чудно и бесконечно, поставил в автозагрузку, > стартует но умирает в течении 1 -5 минут. > Есть идеи?А в логах что? Вдруг скрипт течёт, и его OOM Killer прибивает. А если утроить интервал ping, будет ли он умирать в течение 3-15 минут вместо 1-5? А если воткнуть sleep 30 в начало скрипта, начинает ли он вести себя по другому? А если запустить скрипт не просто так, а "завёрнутым" в какой-нинудь screen или tmux, там что-нибудь видно в выводе? https://askubuntu.com/questions/261899/run-a-screen-session-... А вообще, "ping через nc" это как?
- Умирает скрипт из автозапуска, dvl, 11:50 , 12-Окт-20 (4)
>[оверквотинг удален] >> Есть идеи? > А в логах что? Вдруг скрипт течёт, и его OOM Killer прибивает. > А если утроить интервал ping, будет ли он умирать в течение 3-15 > минут вместо 1-5? > А если воткнуть sleep 30 в начало скрипта, начинает ли он вести > себя по другому? > А если запустить скрипт не просто так, а "завёрнутым" в какой-нинудь screen > или tmux, там что-нибудь видно в выводе? > https://askubuntu.com/questions/261899/run-a-screen-session-... > А вообще, "ping через nc" это как? В var/log - пусто (это даже не комп, это роутер c entware) последняя запись $! - всегда 0. Ну, да, это я ошибся, nc отправляеет результат ping_а дальше. Проверка - просто ping. Цикл с 15 сек. задержкой, изменение sleep ничего не дает :( "завернуть" - буду читать и пробовать.....
- Умирает скрипт из автозапуска, Licha Morada, 18:54 , 12-Окт-20 (6)
>> А вообще, "ping через nc" это как? > Ну, да, это я ошибся, nc отправляеет результат ping_а дальше. Проверка - > просто ping.Может быть, это не ping умирает а nc? Например, nc запустил сессию TCP, а инициализация устройства продолжилась и кто-то передёрнул сеть. Попробуйте задачу покрутить исключительно локально.
- Умирает скрипт из автозапуска, dvl, 22:30 , 12-Окт-20 (7)
>>> А вообще, "ping через nc" это как? >> Ну, да, это я ошибся, nc отправляеет результат ping_а дальше. Проверка - >> просто ping. > Может быть, это не ping умирает а nc? Например, nc запустил сессию > TCP, а инициализация устройства продолжилась и кто-то передёрнул сеть. > Попробуйте задачу покрутить исключительно локально.Ну, нет. выбросил все сетевые штуки из скрипта, оставил только цикл и sleep в нем, результат - умирает через шаг...
- Умирает скрипт из автозапуска, Licha Morada, 00:33 , 13-Окт-20 (8)
Я хз, но ещё можно копнуть так. С помощью set посмотреть все переменные окружения и сравнить между запусками из терминала и из автостарта. Типа: set > /MyScriptEnv_`date +%FT%H%M%S`.txtПо моему опыту, большинство проблем "в терминале работает а в автозапуске нет" связано с переменными окружения. А запуск из init.d это как? Вы положили свой скрипт в директорию /etc/init.d и понаделали симлинков в /etc/rc.N? Может быть, удобнее было бы запускать его из /etc/rc.local?
- Умирает скрипт из автозапуска, dvl, 09:24 , 13-Окт-20 (9)
> Я хз, но ещё можно копнуть так. С помощью set посмотреть все > переменные окружения и сравнить между запусками из терминала и из автостарта. > Типа: set > /MyScriptEnv_`date +%FT%H%M%S`.txt > По моему опыту, большинство проблем "в терминале работает а в автозапуске нет" > связано с переменными окружения. > А запуск из init.d это как? Вы положили свой скрипт в директорию > /etc/init.d и понаделали симлинков в /etc/rc.N? Может быть, удобнее было бы > запускать его из /etc/rc.local?Да, скрипт просто положил в init.d , добавил к имени спереди S96, и все.
- Умирает скрипт из автозапуска, Licha Morada, 18:28 , 13-Окт-20 (10)
> Да, скрипт просто положил в init.d , добавил к имени спереди S96, > и все.У вас точно System V init? Я бы предположил, что кто-то за этим делом присматривает, и если скрипт не демонизируется за разумное время, то его прибивают. Попробуйте выкрутить на минимум интервал итераций, если я прав то оно успеет оправить больше отного ping-а. Это не решение, а уточнить диагностику. Попробуйте https://linux.die.net/man/1/daemonize Ну, или зовите свой скрипт из rc.local.
- Умирает скрипт из автозапуска, dvl, 14:41 , 14-Окт-20 (11)
>> Да, скрипт просто положил в init.d , добавил к имени спереди S96, >> и все. > У вас точно System V init? > Я бы предположил, что кто-то за этим делом присматривает, и если скрипт > не демонизируется за разумное время, то его прибивают. > Попробуйте выкрутить на минимум интервал итераций, если я прав то оно успеет > оправить больше отного ping-а. Это не решение, а уточнить диагностику. > Попробуйте https://linux.die.net/man/1/daemonize > Ну, или зовите свой скрипт из rc.local.Вы оказались совершенно правы: загрузкой и выгрузкой из init.d рулит скрипт rc.unslung вот его нутро: #!/bin/sh
PATH=/opt/sbin:/opt/bin:/opt/usr/sbin:/opt/usr/bin:/usr/sbin:/usr/bin:/sbin:/bin # Start/stop all init scripts in /opt/etc/init.d including symlinks # starting them in numerical order and # stopping them in reverse numerical order #logger "Started $0${*:+ $*}." ACTION=$1 CALLER=$2 LD_LIBRARY_PATH="" if [ $# -lt 1 ]; then printf "Usage: $0 {start|stop|restart|reconfigure|check|kill}\n" >&2 exit 1 fi [ $ACTION = stop -o $ACTION = restart -o $ACTION = kill ] && ORDER="-r" for i in $(/opt/bin/find /opt/etc/init.d/ -perm '-u+x' -name 'S*' | sort $ORDER ) ; do case "$i" in S* | *.sh ) # Source shell script for speed. trap "" INT QUIT TSTP EXIT #set $1 #echo "trying $i" >> /tmp/rc.log . $i $ACTION $CALLER ;; *) # No sh extension, so fork subprocess. $i $ACTION $CALLER ;; esac done
- Умирает скрипт из автозапуска, Licha Morada, 19:27 , 14-Окт-20 (13)
> загрузкой и выгрузкой из init.d рулит скрипт rc.unslung Замечательно. Правда, не вижу чтобы rc.unslung как-то контролировал, как ведут себя дети. Тем не менее, советую держать ваш скрипт где-то ещё, а в /etc/init.d положить минималистическую "обёртку" для него, которая бы умела реагировать на start|stop|restart, демонизировать сервис и т.д. Посмотрите в качестве примера на соседей /etc/init.d/S*. У меня нет под рукой OpenWRT чтобы посмотреть, но, возможно, необходимая обёртка есть в /etc/rc.common https://stackoverflow.com/questions/33340659/how-to-auto-sta...
|