Quando eu executo $ reboot
no meu FreeNAS 0.7 incorporado (FreeBSD 7.2) ele inicia o procedimento de desligamento mas aparentemente trava.
Eu registrei um comando para iniciar um script de serviço que é executado no PostInit:
/myscripts/startService1.sh
Tem obras sem falhas até agora.
Agora eu registrei um segundo serviço
/myscripts/startService2.sh
e teve que perceber que o script PostInit parece estar bloqueado pelo primeiro serviço (porque é executado infinitamente) e aparentemente não permite que o PostInit retome sua próxima tarefa. Consequentemente, o serviço 2 nunca é iniciado.
Para permitir que o script continue, acrescentei o &
aos comandos a serem executados.
/myscripts/startService1.sh &
e
/myscripts/startService2.sh &
Isso funciona como planejado, ambos os serviços são iniciados e executados conforme o esperado.
Mas quando eu $ reboot
o sistema não será encerrado dentro de segundos como antes (eventualmente, parece completar a reinicialização depois de horas [deixei isso acontecer durante a noite]).
Quando a reinicialização é inicializada, a sessão ssh (eu sou descartada) e todos os serviços são perdidos em segundos - no entanto, ainda posso executar ping na máquina.
Reconectar com ssh
não funciona (conexão recusada).
Limpar (ou até mesmo matar) os serviços antes de $ reboot
não ter efeito.
Todo o problema também é reproduzível com apenas um serviço, desde que eu acrescentei o &
à sua chamada.
Aparentemente, um processo simples de auto finalização como ps -Auw > /myLogs/postInit.log &
também causará o problema.
Estou perplexo e posso precisar de uma dica.
Atualização:
Eu não sei como dizer isso, mas ... é fixo. E eu não tenho ideia de como. Tudo que fiz foi deixar passar algum tempo (escrevendo esta questão) e depois tentei com $ shutdown -r now
, o que funcionou. Então tentei $ reboot
que agora funcionou também. Desde então, tudo corre como pretendido, mas não sei o que fiz para o corrigir! Não havia nada depois de escrever isso, que eu não fiz antes - exceto por executar shutdown -r
naquela vez em que tudo magicamente funcionou.
Eu tentei reproduzir com força o problema, mas não consegui fazê-lo, antes que pudesse testar facilmente, adicionando ou removendo esse pequeno &
. Eu ainda tenho que executar explicitamente os scripts como processos em segundo plano, senão o script PostInit é bloqueado.