El servicio de arranque nunca comienza o se detiene por completo

11

Estoy tratando de hacer una secuencia de comandos simple para el servidor de TeamSpeak, pero no puedo hacer que funcione.

Cuando digo initctl start , simplemente se ejecuta pero nunca termina o incluso emite ningún mensaje. Lo mismo está sucediendo para parar .

Para asegurarme de que no estoy haciendo nada malo, he copiado el script cron e intenté ejecutarlo, pero sucede lo mismo.

¿Qué estoy haciendo mal aquí?

ACTUALIZAR:

Aquí está mi 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

Lo intenté incluso con el script más simple, y eso tampoco funciona:

description     "regular background program processing daemon"

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

expect fork
respawn

exec echo example
console output

Gracias por tu ayuda.

danizmax
fuente
¿Es posible que desee mostrar el trabajo inicial que está intentando ejecutar para que podamos depurarlo? Es difícil saber por qué está colgando sin verlo.
slangasek
Copié el script cron e intenté ejecutarlo y sucede lo mismo, simplemente se detiene y nunca regresa al shell
danizmax
Todavía necesitamos ver su secuencia de comandos advenedizo. Sin ella, no hay nada que podamos hacer. Publíquelo o proporciónenos un enlace.
hggdh
Sin ver el script, todo lo que puedo hacer es adivinar: ¿Le importa a su script que se ejecute como raíz por parte del sistema de arranque? La RUTA de la raíz es diferente. Si su script desea usar una aplicación que no está en la RUTA de la raíz, debe especificar la ruta completa. ¿Hay algún programa en tu script que no regrese?
waltinator
Consulte askubuntu.com/questions/14810/…
waltinator el

Respuestas:

1

Hay una serie de rarezas en su trabajo inicial que me hacen rascarme la cabeza.

1) emit no es un programa que yo sepa, por lo que, a menos que lo haya agregado a la ruta del sistema, es probable que esto cause errores. ¿Quiso decir 'echo'? Eso tampoco puede ser útil, ya que irá a la consola del sistema que puede no ser visible.

2) Suponiendo que la estrofa 'emitir' funciona, dices 'esperar bifurcación' pero luego bifurcas dos veces . Una vez para el 'guión', y luego otra vez cuando el guión de TeamSpeak se bifurca en segundo plano.

3) "su" para ejecutar el script, pero start-stop-daemon es en realidad más simple para la mayoría de los casos:

Con 11.10, no necesita hacer el chdirscript in, no estoy seguro de si se agregó después de cualquier versión de arranque que tenga. Comprueba man 5 initla palabrachdir

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

Además, los errores probablemente se informarán en / var / log / syslog. Puede aumentar el nivel de error bastante ejecutando

initctl log-priority info

man initctl para más niveles de registro.

SpamapS
fuente
No es el OP, pero está usando (danimaz) su para ejecutar el servidor como su usuario, no para convertirse en root.
Javier Rivera
Hah doh, perdí la barra de desplazamiento en la parte inferior ... perfectamente alineada para ocultar el nombre de usuario. :-P
SpamapS