Upstart no ejecuta el script .sh

La información en la web con respecto a los archivos upstart , init y .conf es basura. Muchos lugares diferentes muestran formas completamente diferentes de hacer las cosas.

De todos modos, tengo un archivo de script /home/karl/.scripts/startup/sensei-raw-startup.sh (permiso de archivo 775):

 #!/bin/bash # run as root xinput list >> /var/log/trololol.log echo trololol start >> /var/log/trololol.log ids=$(xinput list | awk '/SteelSeries Sensei Raw Gaming Mouse .*pointer/ {print $8}' | sed 's/id=\(.*\)/\1/') echo trololol before ids >> /var/log/trololol.log echo $ids >> /var/log/trololol.log echo trololol after ids >> /var/log/trololol.log if [ -z "$ids" ]; then exit 0; fi read -a ids_array <<> /var/log/sensei-raw-startup.log echo trololol end >> /var/log/trololol.log 

Cuando inicie sesión ejecutando el script como sudo se ejecuta perfectamente (también se crea el registro):

 karl@karl-laptop:~/.scripts/startup$ sudo bash sensei-raw-startup.sh fixing id 12 fixing id 14 Backlight intensity: low Backlight pulsation: slow Speed in CPI (LED is off): 5670 Speed in CPI (LED is on): 450 Polling frequency: 500Hz karl@karl-laptop:~/.scripts/startup$ 

Ahora deseo que esto se ejecute automáticamente cada vez que inicie sesión o la computadora se inicie (esto debería afectar a todos los usuarios que inicien sesión).

/etc/init/karl-startup.conf el archivo /etc/init/karl-startup.conf :

 description "karls sexy startup script" author "Karl Morrison" start on started lightdm pre-start script exec xinput 1> /var/log/karls.log 2>&1 end script script exec bash /home/karl/.scripts/startup/sensei-raw-startup.sh end script 

Ahora reviso el archivo con:

 karl@karl-laptop:~$ init-checkconf /etc/init/karl-startup.conf File /etc/init/karl-startup.conf: syntax ok 

Reinicio mi computadora portátil, el inicio de sesión y la configuración de mi mouse no se han modificado, reviso los registros:

 karl@karl-laptop:~$ sudo cat /var/log/trololol.log [sudo] password for karl: trololol start trololol before ids trololol after ids 

Como puede ver donde se supone que se muestran los identificadores, 12 14 está en blanco.

Me consiguió el siguiente error:

 karl@karl-laptop:~$ sudo cat /var/log/karls.log Unable to connect to X server 

El archivo /etc/init/karl-startup.conf debería leer:

 description "karls sexy startup script" 

Como dice en su pregunta relacionada , desea iniciar el script al iniciar sesión , use más

 start on desktop-session-start 

Si quieres ejecutarlo en el arranque, usa

 start on startup exec sudo -u $user /home/karl/.scripts/startup/sensei-raw-startup.sh exec echo sensei-raw-startup.sh script `date` >> /var/log/karl-startup.log start 

Más detalles sobre el inicio aquí: http://upstart.ubuntu.com/cookbook/#id300