Como atrasar uma inicialização de serviço na inicialização no Debian?

0

Então, para ser preciso, eu estou tentando atrasar a inicialização do "deluge-daemon" no meu pi framboesa 2. De alguma forma, o USB (NTFS) só é montado automaticamente (estou usando o automount padrão em Raspbian) após o X- inicialização do servidor (embora eu nem precisaria mesmo do servidor X) e o Deluge parece começar um pouco antes do USB ser montado e eu recebo o problema de permissão, porque o USB não está montado ainda e tem que reiniciar o Deluge para ele começar a funcionar corretamente ...

Então, tentei diminuir a prioridade e executá-la apenas no nível de execução 5:

sudo update-rc.d deluge-daemon start 20 5 . stop 80 0 1 6 .

Isso realmente não ajuda. Eu tentei editar o script de inicialização do deluge-daemon e adicionar um

sleep 1m

no caso inicial do script de inicialização. Ele funciona então e é montado depois que o USB já está montado, mas o problema é que ele agora fica mais lento toda vez que eu tento iniciar o serviço deluge-daemon, então toda vez que eu levo um minuto depois que eu decidi parar e iniciar o processo manualmente ...

Qualquer ajuda seria apreciada. Tem que haver uma maneira de atrasar a inicialização sem afetar o script de início geral ...

    
por Arturas M 09.10.2015 / 23:34

2 respostas

2

Você pode verificar se o USB está montado antes de dormir. Por exemplo:

mount | grep -q /path/to/USB/stick/mountpoint || sleep 1m

Isso só dura 1 minuto se o pendrive não estiver montado.

    
por 09.10.2015 / 23:59
2

Quando você diz:

So I tried lowering the priority and running it only on runlevel 5

Espero que você não diminua o número inicial ... porque isso faz o contrário!

Quanto menor o número, mais cedo o serviço será iniciado: rc será executado sequencialmente o conteúdo de /etc/rcS.d/ e, em seguida, o conteúdo de /etc/rc?.d , sendo ? do nível de execução atual e o conteúdo do% As pastas/etc/rc* são links simbólicos para os initscripts de serviços com o formato S??service_name para scripts de início (que rc executará com o argumento "start") ou K??service_name para scripts de parada (que rc executará com "stop" argumento).

Em S?? e K?? , o ?? é a posição na qual ele será executado, sendo 00 o primeiro e 99 o último. Quando dois ou mais scripts têm o mesmo número, eles são executados de acordo com a ordem alfabética do nome do serviço.

Com isso dito, se você executar

sudo uptate-rc.d deluge-daemon start 99 5 . stop 80 0 1 6 .

ou renomeie o rc symlink /etc/rc5.d/S??deluge-daemon para /etc/rc5.d/S99deluge-daemon , deluxe-daemon seria o último (ou último) serviço a iniciar no runlevel 5. Se você renomear o symlink para S99Zdeluge-daemon você tem ainda mais possibilidades de executar o último ao inicializar.

É claro que você pode usar este procedimento para tentar obter os serviços de que precisa para este daemon de dilúvio iniciado anteriormente, se possível.

    
por 09.10.2015 / 23:57