Jump to content

Скрипт в автозагрузке.


Recommended Posts

Добрый день, 
Имеется Keenetic omni  c OPKG и установленной entware.
Набросал скрипт с бесконечным циклом внутри.
из консоли работает замечательно.
поместил в автозагрузку в init.d с именем S96script.
Стартует при загрузке , но исполняется от 1 до десяти циклов и выгружается. следов причины не видно.
Сократил скрипт до пустого цикла, - та же картина.

 

#!/bin/sh
sleep=15
while true
do
sleep $sleep
done

Как победить?
Спасибо.

Link to comment
Share on other sites

Попробуйте установить пакет opkg install bash

Концы строк в файле должны быть обязательно LF

Я всё делаю через WinSCP через sftp

#!/bin/sh
sleep=1
while true
do
sleep $sleep
echo Success!
done

Всё работает

Edited by PHP
Link to comment
Share on other sites

Уважаемый PHP,
Вы скрипт ставили в автозагрузку?
Если да, то как? (У меня в init.d с именем S96script)
Консоль работает нормально, в фоне - падает.
 

PS установка opkg install bash не помогла.
Кстати, в init.d  лежит и исполняется при загрузке rc.unslung , умираем с ним одновременно. (видно в top).

Link to comment
Share on other sites

Извините ошибся, это Вам нужно поставить задание в Планировщик заданий cron в Entware

Ставил 1 вариант для теста отправки почты, работает.

Предположу что Вам надо написать задание как то так

*/1 * * * * /opt/etc/init.d/s96script

в s96script код скрипта.

  • Upvote 1
Link to comment
Share on other sites

Уважаемый 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.

Link to comment
Share on other sites

S с большой буквы это чтобы файл стартовал в автозагрузке, если не надо чтобы стартовал то с маленькой или вообще с другой буквы.

Link to comment
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...