Як запустити послугу при запуску на безголівковому сервері Debian (Raspberry Pi)?


0

Я хотів би почати aria2 як демон при запуску на безголовому сервері Raspberry Pi (немає графічного інтерфейсу, просто доступ до SSH)

Я створив сервіс aria2cRPC, який запускає додаток (отримав допомогу від: http://www.megaleecher.net/Raspberry_Pi_Autostart ). Він запускає додаток так:

sudo aria2c --daemon --enable-rpc --rpc-listen-all

Коли я запускаю послугу з консолі SSH

sudo service aria2cRPC start

Кожна думка працює як очікувалося.

Але коли я додаю послугу для автоматичної запуску під час завантаження, вона не запуститься.

sudo update-rc.d aria2cRPC defaults

Чи слід змінити рівень пробігу? Який рівень я повинен використовувати? Як я можу перевірити, що сервіс хоча б намагається запустити під час завантаження?

EDIT: Коли я переглядаю /etc/rcX.d, я бачу свою послугу за адресою:

/etc/rc0.d K01aria2cRPC
/etc/rc1.d K01aria2cRPC
/etc/rc2.d S01aria2cRPC
/etc/rc3.d S01aria2cRPC
/etc/rc4.d S01aria2cRPC
/etc/rc5.d S01aria2cRPC
/etc/rc6.d K01aria2cRPC

Чи означає це, що служба повинна працювати під час завантаження без X (рівень запуску 2,3,4)?

Відповіді:


3

Я вважаю, що рівень запуску програми Raspberry Pi за замовчуванням дорівнює 2, тому налаштування за замовчуванням повинні бути нормальними. Ви можете перевірити, чи справді це так, посилаючись who -r.

Номер послідовності, який ви використовували ( 01), досить низький. Це може бути достатньою причиною, щоб сервіс не запускався, якщо це залежить від інших служб, які мають більш високі порядкові номери. Я пропоную вам спробувати ще раз з більш високим, наприклад

sudo update-rc.d aria2cRPC defaults 99

після видалення посилань.

Чи слід змінити рівень пробігу? Який рівень я повинен використовувати?

Вам не доведеться змінювати рівень запуску, якщо у вас немає інших причин.

Як я можу перевірити, що сервіс хоча б намагається запустити під час завантаження?

Ви можете додати такий /etc/init.d/aria2cRPCсценарій, як наступний :

echo "`/bin/date` $1" >> /var/tmp/aria-rc.log

який запише всі ваші виклики сценарію. ( $1буде першим параметром сценарію, startабо stop).


Добре, тому я перевірив, runlevelі це рівень 2. Я перейменував файл у /etc/rc2.d S90aria2cRPC(використовуючи mv). Я думав, можливо, є проблема із запуском sudoсценарію оболонки, тому я додав рядок у самому кінці sudo visudo: pi ALL=(ALL) NOPASSWD: /usr/bin/aria2cАле це не допоможе .. будь-які інші ідеї?
Joudicek Jouda

Звичайно, ви перевірили, що ціль ваших посилань (ваш /etc/init.d/aria2cRPCсценарій) належить root:rootта має дозволи 755.
нік

Я додав echoрядок поруч із рядком aria2c і сценарій починається під час завантаження. Тому проблема повинна бути з викликом програми. Сценарій належить root та має дозвіл 777. Це нормально? Що щодо програми (також root та 755) - чи слід змінити право власності чи дозволи?
Joudicek Jouda

Можливо, це не є причиною проблеми, але слід виправити дозволи. Вам потрібно буде налагодити свій сценарій, і я не думаю, що я можу багато допомогти, не маючи змоги покласти на це руки.
nickie

Гаразд, як мені це виправити? Я маю на увазі, що у мене немає проблем з командами Гуглінга, але я не знаю, для чого їх слід встановити? Як і 755 у кожному файлі / сценарії? Чи всі вони повинні належати користувачу pi? Сценарій такий самий, як і сценарій, який є кроком 3 тут: megaleecher.net/Raspberry_Pi_Autostart Але рядок, що починає додаток (nohup ...), схожий на запитання - я змінив його, тому що лінія не запустила демон aria2c навіть від SSH ..
Joudicek Jouda

1

Рішення полягає у створенні порожнього файлу txt, шлях якого визначений у aria2 config: input-file .

Aria2 не в змозі впоратися із ситуацією, коли вказаний шлях до файлу, але він не існує. Тож воно не почнеться. Але також не відображається жодна помилка, яка є досить складною.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.