Problemas com o script upstart em ~ / .init

2

Estou experimentando a execução do Sonar na minha área de trabalho do Linux. Eu queria que ele fosse iniciado automaticamente na inicialização da caixa, mas tudo bem para ele funcionar como eu.

Eu criei "~ / .init / sonar.conf" com os seguintes conteúdos simples:

description "Sonar server"
start on startup
respawn
chdir ~/apps/sonar-3.2/bin
exec ~/apps/sonar-3.2/bin/linux-x86-64/sonar.sh start

Eu li que o Upstart não está configurado para trabalhos do usuário por padrão, então editei "/etc/dbus-1/system.d/Upstart.conf", comentando o elemento "" existente e substituindo-o pelo seguinte :

<policy context="default">
  <allow send_destination="com.ubuntu.Upstart" send_interface="org.freedesktop.DBus.Introspectable"/>
  <allow send_destination="com.ubuntu.Upstart" send_interface="org.freedesktop.DBus.Properties"/>
  <allow send_destination="com.ubuntu.Upstart" send_interface="com.ubuntu.Upstart0_6"/>
  <allow send_destination="com.ubuntu.Upstart" send_interface="com.ubuntu.Upstart0_6.Job"/>
  <allow send_destination="com.ubuntu.Upstart" send_interface="com.ubuntu.Upstart0_6.Instance"/>
</policy>

Quando eu faço "start sonar" recebo "start: Job failed to start". Eu também fiz "initctl list | grep sonar" e obtive "sonar stop / waiting".

Como posso resolver isso ainda mais?

    
por David M. Karr 26.09.2012 / 19:24

2 respostas

2

Provavelmente, seu problema é que o que você considera startup não é o que o upstart usa. A inicialização é um dos primeiros eventos emitidos durante a inicialização do script de inicialização do sistema. Então você pode estar perdendo coisas como pilha de rede e drivers, sistemas de arquivos, quase tudo realmente. Releia a manpage cuidadosamente sobre o significado do evento de inicialização, e também o que começou também.

Este é o processo que uso para verificar e testar serviços iniciantes.

Primeiramente, verifique sua configuração:

# silent if the config is valid    
initctl check-config sonar
# reload the configuration to pick up latest changes
initctl reload-configuration

Eu também adiciono um script - que é executado em startup - para alternar o upstart para o modo de log de depuração:

sudo -s
cat <<EOCONF > /etc/init/upstart-debug.conf 
description "enable debugging of upstart from within"
author      "@dch__"
version     "0.1"

start on startup

task
exec initctl log-priority debug

Como é uma tarefa, ele é executado apenas uma vez. O resultado agora é que você obtém muito mais detalhes em /var/log/dmesg - apenas | grep init: para o histórico.

Para o seu trabalho inicial específico, altero o seguinte:

  • para daemons normais de usuário Eu corro start on started networking and filesystem , o que funciona com sucesso em Quantal e Precise, mas provavelmente não em versões anteriores.
  • use um caminho absoluto em vez de um relativo.
  • verifique se seu script sonar.sh ou daemonises, em caso afirmativo, você precisará adicionar expect fork ou expect daemon como uma estrofe.
  • finalmente, salpique as instruções emit ... stanzas ou shell echo here nos scripts pré-exec e exec e verifique essa saída no /var/log/upstart/sonar.log correspondente.
por Dave Cottlehuber 14.02.2013 / 09:37
0

Para Upstart Emprego do usuário seguindo a mudança de configuração do Upstart.conf: link funcionou para mim.

  • testado no Ubuntu 12.04
  • meus trabalhos (de usuário) estão em ~ / .init
  • não reinicia depois de salvar o Upstart.conf é necessário

Em relação ao seu sonar.conf - start on startup é provavelmente muito cedo. start on desktop-session-start parece mais apropriado para trabalhos do usuário.

Editar: trabalhos do usuário não são respeitados pelo Ubuntu na inicialização, conforme descrito neste relatório de erros - você pode use a seguinte solução alternativa .

    
por geekQ 29.03.2013 / 12:21

Tags