Entendendo as falhas do script init com sysctl


1

Eu criei meu próprio script init para iniciar um aplicativo da Web Mono dentro do mod-mono-server2contêiner (não usei AutoHosting, estou ciente disso).

Quando eu tinha o openSUSE 11.4 com init, era capaz de ler no console exatamente o que estava errado. Agora eu tive que migrar meu aplicativo para um servidor executando o openSUSE 12.1 que usa systemctl, e é uma bagunça descobrir por que ele falha ao iniciar.

O comando de inicialização é apenas um típico sudo -u mono-user mod-mono-server2 [params]que grava o PID em um arquivo /var/run/spambusters/(para matá-lo quando eu quero parar). Quando tento fazer /etc/init.d/spambusters start, apenas obtenho um genérico Job failed. See system logs and 'systemctl status' for details..

Mas não consigo obter mais informações .........

spambusters@dom:~/source> sudo systemctl status spambusters.service
spambusters.service - LSB: Spambusters instance (as spambusters)
      Loaded: loaded (/etc/init.d/spambusters)
      Active: failed since Fri, 07 Sep 2012 20:37:56 +0200; 1min 37s ago
     Process: 29731 ExecStart=/etc/init.d/spambusters start (code=exited, status=1/FAILURE)
      CGroup: name=systemd:/system/spambusters.service
          â”” 29744 sudo -u spambusters /usr/bin/mod-mono-server2 --nonstop --port 8089 --address 127.0.0.1 --applicat...
spambusters@dom:~/so

O log do sistema /var/log/messagescontém apenas

Sep  7 20:37:56 dom sudo:     root : TTY=console ; PWD=/ ; USER=spambusters ; COMMAND=/usr/bin/mod-mono-server2 --nonstop --port 8089 --address 127.0.0.1 --applications /:/home/spambusters/srv/www/domains/www.burnthespam.info/htdocs

Embora eu entenda que essa pergunta também pode ser adequada para serverfault.com porque lida com a administração do servidor, minha pergunta direta é

Como encontro mais informações sobre falhas em um script init quando o processo raiz é systemctl em vez de init?

Respostas:


0

Se o sistema operacional usar systemd-journald,

journalctl -a _SYSTEMD_UNIT=spambusters.service

(A versão mais recente do systemd mostra a mesma coisa systemctl status, mas o OpenSuSE possui uma versão mais antiga.)


Além disso, não usesudo se você deseja que ele seja executado apenas como um usuário diferente. Use emUser=spambusters vez disso.


Você pode explicar melhor a parte do sudo? Onde uso User = spambusters?
usr-local-ΕΨΗΕΛΩΝ

@ djechelon: Na spambusters.serviceunidade, é claro. Veja a página de manual systemd.exec (5) , onde User=é descrita.
grawity

Talvez esteja faltando alguma coisa. Meu script (herdado de um sistema em que eu estava usando o init) é /etc/init.d/spambusters e é escrito de acordo com o formato init, exatamente como os scripts sshd, mysql, apache2. Todos eles estão presentes no meu sistema openSUSE 12.1 que usa systemd em vez de init, e o apache2 também me deu dores de cabeça porque eu não sabia com facilidade por que às vezes ele não foi iniciado (mas consegui corrigir ...). Então, basicamente, não tenho o arquivo spambusters.service
usr-local-ΕΨΗΕΛΩΝ
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.