dvl Posted October 12, 2020 Share Posted October 12, 2020 Добрый день, Имеется Keenetic omni c OPKG и установленной entware. Набросал скрипт с бесконечным циклом внутри. из консоли работает замечательно. поместил в автозагрузку в init.d с именем S96script. Стартует при загрузке , но исполняется от 1 до десяти циклов и выгружается. следов причины не видно. Сократил скрипт до пустого цикла, - та же картина. #!/bin/sh sleep=15 while true do sleep $sleep done Как победить? Спасибо. Quote Link to comment Share on other sites More sharing options...
PHP Posted October 12, 2020 Share Posted October 12, 2020 (edited) Попробуйте установить пакет opkg install bash Концы строк в файле должны быть обязательно LF Я всё делаю через WinSCP через sftp #!/bin/sh sleep=1 while true do sleep $sleep echo Success! done Всё работает Edited October 12, 2020 by PHP Quote Link to comment Share on other sites More sharing options...
dvl Posted October 13, 2020 Author Share Posted October 13, 2020 Уважаемый PHP, Вы скрипт ставили в автозагрузку? Если да, то как? (У меня в init.d с именем S96script) Консоль работает нормально, в фоне - падает. PS установка opkg install bash не помогла. Кстати, в init.d лежит и исполняется при загрузке rc.unslung , умираем с ним одновременно. (видно в top). Quote Link to comment Share on other sites More sharing options...
PHP Posted October 14, 2020 Share Posted October 14, 2020 Извините ошибся, это Вам нужно поставить задание в Планировщик заданий cron в Entware Ставил 1 вариант для теста отправки почты, работает. Предположу что Вам надо написать задание как то так */1 * * * * /opt/etc/init.d/s96script в s96script код скрипта. 1 Quote Link to comment Share on other sites More sharing options...
dvl Posted October 14, 2020 Author Share Posted October 14, 2020 Уважаемый PHP, Вы скрипт ставили в автозагрузку? Если да, то как? (У меня в init.d с именем S96script) Консоль работает нормально, в фоне - падает. PS установка opkg install bash не помогла. Кстати, в init.d лежит и исполняется при загрузке rc.unslung , умираем с ним одновременно. (видно в top). B результате, виноват именно rc.unslung! загрузкой и выгрузкой из 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 Уважаемый PHP! Ваш вариант с cron, оказался рабочим! Большое спасибо.! ВЫВОД: не ставить в init.d , если не хотим, чтобы скрипт исполнился 1 раз при загрузке или перемонтировании флешки. Кстати, имяфайла должено начинаться с S. Quote Link to comment Share on other sites More sharing options...
PHP Posted October 14, 2020 Share Posted October 14, 2020 S с большой буквы это чтобы файл стартовал в автозагрузке, если не надо чтобы стартовал то с маленькой или вообще с другой буквы. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.