8 votos

Ejecución de trabajos de usuario de Upstart en el arranque

Estoy ejecutando el servidor Ubuntu 11.04. He creado un trabajo de usuario Upstart como se describe aquí .

Tengo el siguiente archivo en mi /home/myuser/.init/sensors.conf :

start on started mysql
stop on stopping mysql

chdir /home/myuser/mydir/project
exec /home/myuser/mydir/env/bin/python /home/myuser/mydir/project/manage.py sensors

respawn

respawn limit 10 90

Como myuser Puedo iniciar, detener y recargar el trabajo sin problemas, funciona perfectamente:

$ start sensors
sensors start/running, process 1332
$ stop sensors
sensors stop/waiting

El problema es que el trabajo no se inicia automáticamente en el arranque cuando mysql comienza. Después de un nuevo arranque, mysql está funcionando pero mi sensors trabajo no lo es.

Lo que es extraño, es que aunque el trabajo no comienza en el arranque, si uso sudo para reiniciar mysql efectivamente comienza mi trabajo. Los siguientes comandos se ejecutan como myuser de una nueva puesta en marcha:

$ status sensors
sensors stop/waiting
$ sudo restart mysql
mysql start/running, process 1209
$ status sensors
sensors start/running, process 1229

La documentación de los trabajos de usuario de Upstart es bastante limitada. ¿Cuál es la técnica correcta para que un trabajo de usuario se inicie automáticamente al arrancar el sistema?

Sé que puedo poner algo en rc.local para iniciarlo, o podría mover mi sensors.conf a /etc/init pero tengo curiosidad por saber si hay una manera de hacerlo usando sólo Upstart.

8voto

bradley.ayers Puntos 176

El problema es que los trabajos del usuario no se cargan en Upstart hasta que el usuario crea una sesión de Upstart ejecutando uno de los initctl comandos.

Lo he descrito con más detalle en http://bradleyayers.blogspot.com.au/2012/04/enabling-upstart-user-jobs-to-start-at.html y también he escrito un trabajo de Upstart que soluciona el problema.

-1voto

Carl Zulauf Puntos 128

Si se consultan fuentes como /etc/init/mysql.conf y http://upstart.ubuntu.com/cookbook/#start-on me parece que deberías cambiar tu start on línea a algo como esto:

start on (mysql and runlevel [2345])

No estoy seguro de estar de acuerdo con que a Upstart le falte documentación, pero seguro que a veces me cuesta entender los documentos. Por lo general, sólo hacer la prueba y el error hasta que su trabajo. La solución anterior puede ser excesiva en realidad ... algo tan simple como esto puede ser suficiente:

start on mysql

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X