Jump to content

Recommended Posts

Posted (edited)

Всем привет! 

Пытаюсь настроить Flexget на Keenetic Ultra II. С установкой справился, веб-интерфейс настроил, задания отрабатываются.

Возникла проблема с запуском демона после загрузки системы.

Пытаюсь следовать рекомендациям на официальном сайте. Однако добавление в crontab правила 

@reboot /opt/bin/flexget daemon start -d

не возымело эффекта.

Попытался зайти с другой стороны: создал в папке etc/init.d файл S92flexget следующего содержания:

/opt/bin/flexget daemon start -d

Эта команда запуска демона, вызываемая из CLI, выполняется достаточно долго (по ощущениям, около минуты, точнее не замерял). Ошибок не выдает, завершается корректно и после этого всё работает. 

Однако после перезагрузки в логе имею сообщение:

Mar 20 00:07:40 ndm Opkg::Manager: /opt/etc/init.d/rc.unslung: timed out.

И flexget не работает, пока не запустить его вручную. Может быть, кто-то подскажет, что я делаю не так?

Edited by Tem@
Posted

В прошивке ограничение на время работы/запуска скрипта. Рекомендую использовать вместо flexget более легкое решение. aria2?

Posted

Спасибо за совет, но боюсь что aria2 - немного не то. Flexget я собирался использовать не столько для закачки (для этого есть transmission), сколько для отслеживания появления новых загрузок на основе RSS-лент трекеров и данных из trakt.tv. Да и я не назвал бы его сильно тяжеловесным: проц практически не грузит, памяти использует только 20% (и то думаю что в основном из-за веб-интерфейса).

Давайте зайдем с другой стороны: ограничение на время запуска скрипта только во время инициализации (т.е. для размещенных в папке init.d)? Или это распространяется на все автоматически запускаемые скрипты? Однако достаточно долгий скрипт синхронизации папок с помощью rsync у меня выполняется каждый день с помощью cron.daily,

Если это ограничение распространяется только на init-скрипты, тогда может кто-то подсказать, как организовать выполнение скрипта с помощью cron (или другого планировщика) один раз например через минуту после перезагрузки устройства? Или можно как-то отрегулировать таймауты на выполнение скриптов?

Posted
40 минут назад, Tem@ сказал:

Давайте зайдем с другой стороны: ограничение на время запуска скрипта только во время инициализации (т.е. для размещенных в папке init.d)? Или это распространяется на все автоматически запускаемые скрипты? Однако достаточно долгий скрипт синхронизации папок с помощью rsync у меня выполняется каждый день с помощью cron.daily,

Ограничения (разные) есть на initrc скрипт и на скрипты хуки в /opt/etc/ndm. Точнее скажут разработчики прошивки. Про cron - попробуйте прикрутить, что там за ограничения и есть ли - не знаю. По initrc - попробуйте сразу запустить в фоне (символ &), чтобы исполнение скрипта пошло дальше.

  • Thanks 1
Posted

В общем, разобрался в проблеме.

Похоже что дело было в том, что при автозапуске flexget не мог найти свой конфигурационный файл (хотя при запуске из командной строки у него таких проблем не возникало и он вполне легко находил файл config,yml, размещенный в папке /opt/root/.flexget).

В результате добавил в crontab такую строку:

@reboot root /opt/bin/flexget -c /opt/root/.flexget/config.yml daemon start -d > /opt/etc/flexget.start.log 2>&1

И всё заработало. В логе запись об успешном старте демона и предупреждение об использовании ascii-символов... но это совсем другая история :)

  • Thanks 1
Posted
9 часов назад, Tem@ сказал:

В результате добавил в crontab такую строку:

1. Нужно бы проверять, запущено ли приложение. Запускать, только если не запущено.

2. В отличии от запуска через /opt/etc/init.d приложение не будет остановлено (выгружено) при перезагрузке роутера - отсюда пойдут ошибки на диске.

Posted
2 часа назад, zyxmon сказал:

1. Нужно бы проверять, запущено ли приложение. Запускать, только если не запущено.

А в каком случае после ребута оно может быть запущено? До сих пор такого не наблюдалось.

2 часа назад, zyxmon сказал:

2. В отличии от запуска через /opt/etc/init.d приложение не будет остановлено (выгружено) при перезагрузке роутера - отсюда пойдут ошибки на диске.

Правильно ли я понимаю, что ошибки на диске возникнут, если роутер будет перезагружен в момент записи данных на диск? 

Posted

1. Не обратил внимание на @reboot.

2. linux кеширует данные, пока данные в кеше и не сброшены на носитель возможно возниконовение ошибок на файловой системе при перезагрузке.

Posted
31 минуту назад, zyxmon сказал:

2. linux кеширует данные, пока данные в кеше и не сброшены на носитель возможно возниконовение ошибок на файловой системе при перезагрузке.

И что с этим делать? Как я понимаю, просто скрипта запуска в папке init.d недостаточно для того, чтобы отрабатывать выключение. Наверное, нужно в него добавлять реакцию на команды "start", "stop" и т.п.?

Posted
15 минут назад, Tem@ сказал:

нужно в него добавлять реакцию на команды "start", "stop" и т.п.?

Все скрипты из init.d понимают дополнительные параметры (start, stop, restart и т.д.). Примеров вагон. Тот же dropbear, который уже в системе.

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.

  • Recently Browsing   0 members

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

Important Information

This site uses cookies. By clicking "I accept" or continuing to browse the site, you authorize their use in accordance with the Privacy Policy.