Como iniciar um serviço na inicialização no servidor sem cabeçalho Debian (Raspberry Pi)?

0

Eu gostaria de iniciar o aria2 como um daemon na inicialização do servidor headless do Raspberry Pi (sem interface gráfica, apenas acesso SSH)

Eu criei um serviço aria2cRPC que inicia o aplicativo (recebi ajuda de: link ) Começa o aplicativo assim:

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

Quando inicio o serviço a partir do console SSH

sudo service aria2cRPC start

Todo o trabalho funciona como esperado.

Mas quando eu adiciono o serviço para iniciar automaticamente na inicialização, ele não é iniciado.

sudo update-rc.d aria2cRPC defaults

Devo alterar o nível de execução? Qual nível devo usar? Como posso testar se o serviço está pelo menos tentando inicializar?

EDIT: Quando eu olho para /etc/rcX.d eu posso ver meu serviço em:

/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

Isso significa que o serviço deve estar em execução quando iniciado sem o X (nível de execução 2,3,4)?

    
por Joudicek Jouda 08.10.2013 / 22:54

2 respostas

1

A solução é criar um arquivo txt em branco cujo caminho é especificado em aria2 config: input-file .

O Aria2 não é capaz de lidar com a situação quando há algum caminho de arquivo especificado, mas não existe. Então não vai começar. Mas também não exibe nenhum erro que seja bastante complicado.

    
por 09.10.2013 / 05:02
3

Eu acredito que o nível de execução padrão para o Raspberry Pi é 2, então as configurações padrão devem ser OK. Você pode verificar se esse é realmente o caso invocando who -r .

O número de sequência que você usou ( 01 ) é bastante baixo. Isso pode ser motivo suficiente para o serviço não iniciar, se depender de outros serviços com números de sequência mais altos. Sugiro que você tente novamente com um mais alto, por exemplo,

sudo update-rc.d aria2cRPC defaults 99

depois de remover os links.

Should I change the runlevel? Which level should I use?

Você não precisa alterar seu nível de execução, a menos que tenha outras razões para isso.

How can I test that the service is at least trying to start on boot?

Você pode adicionar uma linha como a seguinte ao seu script /etc/init.d/aria2cRPC :

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

, que registrará todas as invocações de script. ( $1 será o primeiro parâmetro do script, start ou stop ).

    
por 09.10.2013 / 00:13