Ok, pesquisando isso, encontrando esta resposta do U & L , verificando a sua Revisões do histórico e seguindo a fonte citada no revisão # 1 , este é um bug Upstart ; o problema é que, ao alternar para a raiz executando su , a variável de ambiente $UPSTART_SESSION é transportada do ambiente anterior, em vez de ser configurada novamente.
Depois de muito bater a cabeça e googling, encontrei uma postagem ( link ) mostrando que
sudo service xxxx start(ou pare ou reinicie)funciona, enquanto
'service xxxx start (em uma sessão su)
não funciona.
Então, o culpado foi claramente o ambiente: se você for root com "su" em vez de "sudo su" ou "su -", "serviço" também não funcionará corretamente, já que "su" carregará a maior parte de seu ambiente de usuário normal para a sessão raiz.
Depois de alguns testes, descobri que o culpado é a variável de ambiente UPSTART_SESSION, que vem configurada quando você "su", mas não definida quando você "sudo su" ou "su -". Aqui estão alguns resultados de testes:
- não funciona
jsveiga@dell:~$ su Password: root@dell:/home/jsveiga# service smbd restart stop: Unknown job: smbd start: Unknown job: smbd- funciona até mesmo a partir de uma sessão su
root@dell:/home/jsveiga# sudo service smbd restart smbd stop/waiting smbd start/running, process 3823- funciona
root@dell:/home/jsveiga# exit jsveiga@dell:~$ sudo su root@dell:/home/jsveiga# service smbd restart smbd stop/waiting smbd start/running, process 3862- funciona
root@dell:/home/jsveiga# exit jsveiga@dell:~$ su - Password: root@dell:~# service smbd restart smbd stop/waiting smbd start/running, process 3905- indo su, em seguida, desarmar os trabalhos UPSTART_SESSION
root@dell:/home/jsveiga# exit jsveiga@dell:~$ su Password: root@dell:/home/jsveiga# service smbd restart stop: Unknown job: smbd start: Unknown job: smbd root@dell:/home/jsveiga# unset UPSTART_SESSION root@dell:/home/jsveiga# service smbd restart smbd stop/waiting smbd start/running, process 4244Portanto, os scripts start / stop estão falhando de alguma forma simplesmente pela presença da variável de ambiente
UPSTART_SESSION.BR, João S Veiga
Para corrigir isso, basta remover a configuração $UPSTART_SESSION :
unset UPSTART_SESSION
ou mude para a raiz por outros meios, como su - , sudo su ou sudo -i .