Jump to content

Автозапуск Flexget на Entware


Recommended Posts

Всем привет! 

Пытаюсь настроить 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@
Link to comment
Share on other sites

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

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

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

Link to comment
Share on other sites

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

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

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

  • Thanks 1
Link to comment
Share on other sites

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

Похоже что дело было в том, что при автозапуске 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
Link to comment
Share on other sites

9 часов назад, Tem@ сказал:

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

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

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

Link to comment
Share on other sites

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

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

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

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

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

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

Link to comment
Share on other sites

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

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

Link to comment
Share on other sites

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

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

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

Link to comment
Share on other sites

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

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

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

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.

  • Recently Browsing   0 members

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