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 comenzar, detener y volver a cargar 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 en el arranque cuando se mysql
inicia. Después de un nuevo arranque, se mysql
está ejecutando pero mi sensors
trabajo no.
Lo que es extraño es que, aunque el trabajo no comienza en el arranque, si lo uso sudo
para reiniciarlo mysql
, sí lo hace. Los siguientes comandos se ejecutan myuser
desde un inicio nuevo:
$ status sensors
sensors stop/waiting
$ sudo restart mysql
mysql start/running, process 1209
$ status sensors
sensors start/running, process 1229
La documentación para los trabajos del usuario 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 sólo puede tirar algo en rc.local
iniciarlo, o me podía mover sensors.conf
a /etc/init
pero tengo curiosidad si hay una manera de hacerlo utilizando sólo Upstart.
Mirando fuentes como
/etc/init/mysql.conf
y http://upstart.ubuntu.com/cookbook/#start-on me parece que debería cambiar sustart on
línea a algo como esto:No estoy seguro de estar de acuerdo en que la nueva empresa carece de documentación, pero a veces me cuesta entender los documentos. Por lo general, solo hago prueba y error hasta que funciona. La solución anterior puede ser exagerada en realidad ... algo tan simple como esto puede ser suficiente:
fuente
start on
línea, pero es solo el hecho de que el arranque solo carga / etc / init al inicio, pero no los archivos de inicio del usuario en su$HOME/.init
/etc/init
. Tiene razón en que parece que falta documentación para eso y no estoy seguro de cómo asegurar que~/.init
se inicien los scripts.$HOME/.init
trabajos no están habilitados de manera predeterminada y que algunos cambios/etc/dbus-1/system.d/Upstart.conf
podrían ser necesarios. upstart.ubuntu.com/cookbook/#run-a-job-as-a-different-user