O serviço inicial nunca inicia ou para completamente

11

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

Quando digo initctl start, ele apenas executa, mas nunca termina nem emite nenhuma mensagem. O mesmo está acontecendo para parar .

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

O que eu estou fazendo errado aqui?

ATUALIZAR:

Aqui está o 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

Eu tentei mesmo com o script mais simples, e isso também não funciona:

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.

danizmax
fonte
Você pode mostrar o trabalho inicial que está tentando executar para que possamos depurá-lo? Difícil saber por que está pendurado sem vê-lo.
slangasek
Eu ter copiado o script cron e tentou executá-lo e isso acontece o mesmo, apenas pára e nunca retorna para o shell
danizmax
Ainda precisamos ver seu script inicial. Sem ele, não há nada que possamos fazer. Publique ou forneça um link para ele.
Hggdh
Sem ver o script, tudo o que posso fazer é adivinhar: seu script se importa com o fato de ser executado como root pelo iniciante? O CAMINHO da raiz é diferente. Se o seu script quiser usar um aplicativo que não esteja no PATH da raiz, você deverá especificar o caminho completo. Existe um programa em seu script que não retorna?
waltinator

Respostas:

1

há várias esquisitices em seu trabalho inicial que me fazem coçar a cabeça.

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

2) Supondo que a estrofe 'emit' funcione, você diz 'expect fork', mas na verdade bifurca duas vezes . Uma vez para o 'script' e, novamente, quando o script do teamspeak forquear o segundo plano.

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

Com o 11.10, você não precisa fazer 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 initctl para mais níveis de log.

SpamapS
fonte
Não é o OP, mas ele está usando (danimaz) su para executar o servidor como seu usuário, para não se tornar root.
Javier Rivera
Hah doh, perdeu a barra de rolagem na parte inferior .. perfeitamente alinhada para ocultar o nome de usuário. :-P
SpamapS