Estoy ejecutando el servidor Ubuntu 11.04. He creado un trabajo de usuario Upstart como se describeaquí.
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 bien, 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 al arrancar cuando mysql
se inicia. Después de un nuevo arranque, mysql
se está ejecutando pero mi sensors
trabajo no.
Lo extraño es que, aunque el trabajo no comienza al arrancar, si lo reinicio, sudo
sí mysql
comienza mi trabajo. Los siguientes comandos se ejecutan myuser
desde un nuevo inicio:
$ status sensors
sensors stop/waiting
$ sudo restart mysql
mysql start/running, process 1209
$ status sensors
sensors start/running, process 1229
La documentación para trabajos de usuarios Upstart es bastante limitada. ¿Cuál es la técnica correcta para que un trabajo de usuario se inicie automáticamente al iniciar el sistema?
Sé que puedo simplemente agregar algo rc.local
para iniciarlo, o podría moverlo sensors.conf
a /etc/init
, pero tengo curiosidad por saber si hay una manera de hacerlo usando solo Upstart.
Respuesta1
El problema es que los trabajos de los usuarios 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 enhttp://bradleyayers.blogspot.com.au/2012/04/enabling-upstart-user-jobs-to-start-at.htmly también escribí un trabajo Upstart que soluciona el problema.
Respuesta2
Mirando fuentes como /etc/init/mysql.conf
yhttp://upstart.ubuntu.com/cookbook/#start-onMe 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 el advenedizo carezca de documentación, pero a veces me cuesta entender los documentos. Normalmente hago prueba y error hasta que funciona. La solución anterior puede ser excesiva en realidad... algo tan simple como esto puede ser suficiente:
start on mysql