Tem@ Posted March 19, 2017 Share Posted March 19, 2017 (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 March 19, 2017 by Tem@ Quote Link to comment Share on other sites More sharing options...
zyxmon Posted March 20, 2017 Share Posted March 20, 2017 В прошивке ограничение на время работы/запуска скрипта. Рекомендую использовать вместо flexget более легкое решение. aria2? Quote Link to comment Share on other sites More sharing options...
Tem@ Posted March 20, 2017 Author Share Posted March 20, 2017 Спасибо за совет, но боюсь что aria2 - немного не то. Flexget я собирался использовать не столько для закачки (для этого есть transmission), сколько для отслеживания появления новых загрузок на основе RSS-лент трекеров и данных из trakt.tv. Да и я не назвал бы его сильно тяжеловесным: проц практически не грузит, памяти использует только 20% (и то думаю что в основном из-за веб-интерфейса). Давайте зайдем с другой стороны: ограничение на время запуска скрипта только во время инициализации (т.е. для размещенных в папке init.d)? Или это распространяется на все автоматически запускаемые скрипты? Однако достаточно долгий скрипт синхронизации папок с помощью rsync у меня выполняется каждый день с помощью cron.daily, Если это ограничение распространяется только на init-скрипты, тогда может кто-то подсказать, как организовать выполнение скрипта с помощью cron (или другого планировщика) один раз например через минуту после перезагрузки устройства? Или можно как-то отрегулировать таймауты на выполнение скриптов? Quote Link to comment Share on other sites More sharing options...
zyxmon Posted March 20, 2017 Share Posted March 20, 2017 40 минут назад, Tem@ сказал: Давайте зайдем с другой стороны: ограничение на время запуска скрипта только во время инициализации (т.е. для размещенных в папке init.d)? Или это распространяется на все автоматически запускаемые скрипты? Однако достаточно долгий скрипт синхронизации папок с помощью rsync у меня выполняется каждый день с помощью cron.daily, Ограничения (разные) есть на initrc скрипт и на скрипты хуки в /opt/etc/ndm. Точнее скажут разработчики прошивки. Про cron - попробуйте прикрутить, что там за ограничения и есть ли - не знаю. По initrc - попробуйте сразу запустить в фоне (символ &), чтобы исполнение скрипта пошло дальше. 1 Quote Link to comment Share on other sites More sharing options...
Tem@ Posted March 20, 2017 Author Share Posted March 20, 2017 В общем, разобрался в проблеме. Похоже что дело было в том, что при автозапуске 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-символов... но это совсем другая история 1 Quote Link to comment Share on other sites More sharing options...
zyxmon Posted March 21, 2017 Share Posted March 21, 2017 9 часов назад, Tem@ сказал: В результате добавил в crontab такую строку: 1. Нужно бы проверять, запущено ли приложение. Запускать, только если не запущено. 2. В отличии от запуска через /opt/etc/init.d приложение не будет остановлено (выгружено) при перезагрузке роутера - отсюда пойдут ошибки на диске. Quote Link to comment Share on other sites More sharing options...
Tem@ Posted March 21, 2017 Author Share Posted March 21, 2017 2 часа назад, zyxmon сказал: 1. Нужно бы проверять, запущено ли приложение. Запускать, только если не запущено. А в каком случае после ребута оно может быть запущено? До сих пор такого не наблюдалось. 2 часа назад, zyxmon сказал: 2. В отличии от запуска через /opt/etc/init.d приложение не будет остановлено (выгружено) при перезагрузке роутера - отсюда пойдут ошибки на диске. Правильно ли я понимаю, что ошибки на диске возникнут, если роутер будет перезагружен в момент записи данных на диск? Quote Link to comment Share on other sites More sharing options...
zyxmon Posted March 21, 2017 Share Posted March 21, 2017 1. Не обратил внимание на @reboot. 2. linux кеширует данные, пока данные в кеше и не сброшены на носитель возможно возниконовение ошибок на файловой системе при перезагрузке. Quote Link to comment Share on other sites More sharing options...
Tem@ Posted March 21, 2017 Author Share Posted March 21, 2017 31 минуту назад, zyxmon сказал: 2. linux кеширует данные, пока данные в кеше и не сброшены на носитель возможно возниконовение ошибок на файловой системе при перезагрузке. И что с этим делать? Как я понимаю, просто скрипта запуска в папке init.d недостаточно для того, чтобы отрабатывать выключение. Наверное, нужно в него добавлять реакцию на команды "start", "stop" и т.п.? Quote Link to comment Share on other sites More sharing options...
zyxmon Posted March 21, 2017 Share Posted March 21, 2017 15 минут назад, Tem@ сказал: нужно в него добавлять реакцию на команды "start", "stop" и т.п.? Все скрипты из init.d понимают дополнительные параметры (start, stop, restart и т.д.). Примеров вагон. Тот же dropbear, который уже в системе. Quote Link to comment Share on other sites More sharing options...
Tem@ Posted March 21, 2017 Author Share Posted March 21, 2017 Спасибо, вечером поизучаю 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.