O serviço inicial nunca inicia ou para completamente

O serviço inicial nunca inicia ou para completamente

Estou tentando criar um script inicial simples para o servidor TeamSpeak, mas não consigo fazê-lo funcionar.

Quando eu digoinício do initctlele apenas executa, mas nunca termina ou mesmo emite qualquer mensagem. O mesmo está acontecendo paraparar.

Para ter certeza de que não estou fazendo nada de errado, copiei o script cron e tentei executá-lo, mas acontece o mesmo.

O que estou fazendo de errado aqui?

ATUALIZAR:

aqui está meu script para TS3:

# myservice - myservice job file
description "my service description"
author "Me <[email protected]>"

# Stanzas
#
# Stanzas control when and how a process is started and stopped
# See a list of stanzas here: http://upstart.ubuntu.com/wiki/Stanzas#respawn

# When to start the service
start on runlevel [2345]

# When to stop the service
stop on runlevel [016]

# Automatically restart process if crashed
respawn

# Essentially lets upstart know the process will detach itself to the background
expect fork

# Start the process
script
       emit going into TS3 dir
       chdir /home/danizmax/teamspeak3-server_linux-x86/
       emit starting TS3
       exec su -c "/home/danizmax/teamspeak3-server_linux-x86/ts3server_startscript.sh start" danizmax &
       emit done
end script

Tentei até com o script mais simples, e também não funcionou:

description     "regular background program processing daemon"

start on runlevel [2345]
stop on runlevel [!2345]

expect fork
respawn

exec echo example
console output

Obrigado pela ajuda.

Responder1

há uma série de estranhezas em seu trabalho iniciante que me fazem coçar a cabeça.

1) emit não é um programa que eu conheça, então, a menos que você o tenha adicionado ao caminho do sistema, isso provavelmente está causando erros. Será que quis dizer 'eco' ? Isso também pode não ser útil, pois irá para o console do sistema, que pode não estar visível.

2) Supondo que a estrofe 'emit' funcione, você diz 'esperar fork', mas na verdade forkduas vezes. Uma vez para o 'script' e novamente quando o script do teampeak se bifurca para o próprio plano de fundo.

3) você "su" para executar o script, mas start-stop-daemon é realmente mais simples na maioria dos casos:

Com o 11.10, você não precisa executar o chdirscript in, não tenho certeza se ele foi adicionado após qualquer versão do upstart que você possui. Verifique man 5 inita palavrachdir

start on runlevel [2345]
stop on runlevel [^2345]

respawn

chdir /home/danizmax/teamspeak-server
expect fork

exec start-stop-daemon --start --user danizmax --group danizmax --exec /home/danizmax/teamspeak3-server_linux-x86/ts3server_startscript.sh -- start

Além disso, os erros provavelmente serão relatados em /var/log/syslog . Você pode aumentar um pouco o nível de erro executando

initctl log-priority info

man initctlpara mais níveis de log.

informação relacionada