E agora, a resposta do sistema.
Você está usando o Ubuntu versão 15. Você tem o systemd. /etc/rc.local
é, na melhor das hipóteses, um mecanismo de compatibilidade com versões anteriores no systemd. E como mostrado pela confusão na questão AskUbuntu com hiperlink abaixo, usá-lo pode dar errado. Então, faça uma unidade de serviço apropriada.
Você está criando uma unidade de serviço local, sem pacote e sem sistema, de modo que o arquivo da unidade estará em /etc/systemd/system/
, que é onde esse tipo de unidade está. Vamos chamá-lo de /etc/systemd/system/myscript.service
. Contém:
[Unit] Description=user2580's script Documentation=https://unix.stackexchange.com/questions/202698/ [Service] Type=simple ExecStart=/usr/local/bin/myscript [Install] WantedBy=multi-user.target
Se o seu script forks ", a fim de domonize", então pare de fazê-lo. Isso é completamente desnecessário.
- Execute
systemctl preset myscript.service
(como o superusuário) para que ele seja iniciado automaticamente no bootstrap. - Execute
systemctl start myscript.service
(como superusuário) para iniciá-lo manualmente agora mesmo. - Execute
systemctl status myscript.service
para ver seu status.
Observe que isso não executa seu script em um contexto em que ele possa falar com um servidor X. Pode ser executado antes de um servidor X ser iniciado. Mas você não menciona nenhum requisito para ser um cliente X, nem para outras complexidades que picam novatos como uma variável de ambiente HOME
. E esses são assuntos para outras questões, em qualquer caso. Então eu vou deixar assim.
Leitura adicional
- link
- link
- Jonathan de Boyne Pollard (2001). "Não bifurque () para" colocar o daemon no fundo "." . Erros a evitar ao projetar programas do programa Unix . Respostas frequentemente dadas.