Я хотел бы запустить 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

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

РЕДАКТИРОВАТЬ: Когда я смотрю в /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)?

2 ответа2

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).

1

Решение состоит в том, чтобы создать пустой текстовый файл, путь которого указан в config aria2: входной файл.

Aria2 не может обработать ситуацию, когда указан некоторый путь к файлу, но он не существует. Так что это не начнется. Но также не отображает никаких ошибок, что довольно сложно.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .