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