Por alguma razão, estou recebendo um erro durante as atualizações do apport , cuja causa é
% sudo service apport start
start: Job failed to start
No sysvinit, eu poderia depurar esse tipo de problema executando, por exemplo,
sudo sh -x /etc/init.d/whatever start
mas isso não parece mapear para o Upstart. O que devo tentar a seguir?
Acontece que há uma solução alternativa que permitirá que a instalação continue. Mas ainda estou interessado na questão geral de como rastrear o script.
/var/log/syslog
.Respostas:
Todas as informações a seguir (e ajuda muito mais útil do Upstart) são do The Upstart Cookbook . Seção 18 aborda a depuração. http://upstart.ubuntu.com/cookbook/#debugging
Nesse caso específico de rastrear uma sub-rotina "script" de uma tarefa inicial, você deve adicionar as seguintes linhas logo abaixo da palavra "script":
A razão para a localização ímpar é que /dev/.initramfs/ está disponível na inicialização muito cedo, antes do carregamento do sistema de arquivos raiz e continua disponível após a inicialização. No entanto, acho que com o apport, você provavelmente não precisa usar esse caminho. Ainda assim, é bom saber a opção.
Também deve ser observado que todos os scripts são executados com
set -e
qualquer comando que falhe sairá completamente do script. O que faz sentido, pois é preciso ter muito cuidado ao executar scripts como root.Eu recomendo consultar o Livro de receitas Upstart vinculado acima em geral para quem trabalha com trabalhos Upstart.
fonte
set -x
como você sugere. Eu estava pensando principalmente se havia alguma maneira mais limpa de fazer isso.setuid
esetgid
são utilizados em postos de trabalho.O Upstart registra a execução do serviço em um arquivo de log com o mesmo nome em
/var/log/upstart/your-service-name.log
. Deve ser útil.fonte
set -x
, provavelmente apareceria lá.journalctl