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 chdir
script in, não tenho certeza se ele foi adicionado após qualquer versão do upstart que você possui. Verifique man 5 init
a 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 initctl
para mais níveis de log.