Estou lutando para descobrir por que o rc.local não será executado no momento da inicialização.
O arquivo em si é executável, é chamado de /etc/rc2.d
Além disso, o arquivo quando da linha de comando não retornará nenhum erro.
Alguma idéia do que mais verificar para descobrir por que não é executado?
Responder1
Como você diz que isso rc.local
é executado corretamente quando executado manualmente, as duas coisas que vêm imediatamente à mente são:
- Algo está errado na inicialização, mas funciona quando você mesmo o executa. Talvez você esteja tentando executar um programa que não está no PATH no momento da inicialização.
/etc/rc.local
realmente não está sendo executado na inicialização.
Em ambos os casos, a primeira coisa que eu faria é colocar algo como
/usr/bin/printenv > /var/tmp/rc.local-$(date +%T)
como a primeira linha rc.local
depois da #!/bin/sh
linha. Isso imprimirá as variáveis de ambiente em um arquivo com carimbo de data e hora sempre que for executado. (Não grave o arquivo /tmp
porque ele será esvaziado na inicialização.) Execute /etc/rc.local
manualmente e dê uma olhada rápida no arquivo resultante (ele terá um nome como /var/tmp/rc.local-21:14:35
). Em seguida, reinicie o seu sistema.
Você deve ter dois arquivos /var/tmp
(ou onde quer que seja) que possa comparar. Se você tiver apenas o primeiro arquivo, /etc/rc.local
não será realmente chamado. Se você tiver dois arquivos, compare-os. O último terá ummuitoambiente esparso e PATH. Examine seu rc.local
script e veja se há algo que você está tentando executar que depende de alguma variável ou componente de PATH que não esteja no ambiente de inicialização. Se você encontrar algo, adicione a inicialização necessária ao rc.local
.