¿Necesita ayuda para ejecutar la aplicación Python como servicio en Ubuntu con Upstart?

He escrito una aplicación de registro en Python que está destinada a iniciarse en el arranque, pero no he podido iniciar la aplicación con el daemon de inicio de Upstart de Ubuntu . Cuando se ejecuta desde la terminal con sudo /usr/local/greeenlog/main.pyw , la aplicación funciona perfectamente. Esto es lo que he probado para el trabajo de Upstart:

/etc/init/greeenlog.conf

# greeenlog description "I log stuff." start on startup stop on shutdown script exec /usr/local/greeenlog/main.pyw end script 

Mi aplicación inicia un subproceso secundario, en caso de que sea importante. He intentado el trabajo con la estrofa de bifurcación esperada sin ningún cambio en los resultados. También he intentado esto con sudo y sin las sentencias de script (solo una sentencia ejecutiva solitaria). En todos los casos, después del arranque, el estado de ejecución de greeenlog devuelve greeenlog parada / espera y la ejecución de inicio greeenlog devuelve:

 start: Rejected send message, 1 matched rules; type="method_call", sender=":1.61" (uid=1000 pid=2496 comm="start) interface="com.ubuntu.Upstart0_6.Job" member="Start" error name="(unset)" requested_reply=0 destination="com.ubuntu.Upstart" (uid=0 pid=1 comm="/sbin/init")) 

¿Alguien puede ver lo que estoy haciendo mal? Aprecio cualquier ayuda que puedas dar. Gracias.

    Gracias a la ayuda de unutbu, he podido corregir mi trabajo. Aparentemente, estas son las únicas variables de entorno que Upstart establece (recuperadas en Python con os.environ ):

     {'TERM': 'linux', 'PWD': '/', 'UPSTART_INSTANCE': '', 'UPSTART_JOB': 'greeenlog', 'PATH': '/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/bin'} 

    Mi progtwig se basa en un par de estas variables que se configuran, por lo que aquí está el trabajo revisado con las variables de entorno correctas:

     # greeenlog description "I log stuff." start on startup stop on shutdown env DISPLAY=:0.0 env GTK_RC_FILES=/etc/gtk/gtkrc:/home/greeenguru/.gtkrc-1.2-gnome2 script exec /usr/local/greeenlog/main.pyw > /tmp/greeenlog.out 2>&1 end script 

    ¡Gracias!