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 myuserpuedo 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 mysqlinicia. Después de un nuevo arranque, se mysqlestá ejecutando pero mi sensorstrabajo no.
Lo que es extraño es que, aunque el trabajo no comienza en el arranque, si lo uso sudopara reiniciarlo mysql, sí lo hace. Los siguientes comandos se ejecutan myuserdesde 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.localiniciarlo, o me podía mover sensors.confa /etc/initpero tengo curiosidad si hay una manera de hacerlo utilizando sólo Upstart.

Mirando fuentes como
/etc/init/mysql.confy http://upstart.ubuntu.com/cookbook/#start-on me parece que debería cambiar sustart onlí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 onlí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~/.initse inicien los scripts.$HOME/.inittrabajos no están habilitados de manera predeterminada y que algunos cambios/etc/dbus-1/system.d/Upstart.confpodrían ser necesarios. upstart.ubuntu.com/cookbook/#run-a-job-as-a-different-user