¿Dónde están los scripts de inicio para Unity Desktop?

Quiero ejecutar un script tan pronto como mi autenticación con lightdm tenga éxito, y mi Unity comienza a cargarse. y quiero ejecutar mis scripts como usuario root.

¿Dónde están los scripts de inicio ubicados en Unity?

Primero ponga su script en /usr/bin y dé permiso de ejecución.

Ahora cree el archivo .desktop en /home/[user-name]/.config/autostart/ que ejecuta el script que se ejecuta al inicio.

Ejemplo: – Deje que su nombre de archivo de script sea “example” o “example.sh”

Cree el archivo .desktop con gedit con las siguientes líneas y guárdelo como filename.desktop en /home/[user-name]/.config/autostart/

 [Desktop Entry] Type=Application Exec=sudo example Hidden=false NoDisplay=false X-GNOME-Autostart-enabled=true Name=myscript Comment=Startup Script 

Aquí Exec=sudo example o Exec=sudo example.sh ejecuta su script como una raíz desde /usr/bin Otorgue permiso de ejecución al archivo .desktop.

Ahora, Script se ejecuta en el inicio.

Otra posibilidad:

Cree un archivo en $HOME/.config/upstart/my-upstart-script.conf

 start on desktop-start stop on desktop-end script sudo fdisk -l > /home/[user-name]/upstart-test.txt end script 

Más detalles para Upstart :

http://ifdeflinux.blogspot.de/2013/04/upstart-user-sessions-in-ubuntu-raring.html

http://upstart.ubuntu.com/cookbook/

Infos para ejecutar sudo sin contraseña:

¿Cómo ejecutar una aplicación usando sudo sin contraseña?

¿Cómo ejecuto comandos sudo específicos sin una contraseña?

Para ejecutar un comando como root , después de iniciar sesión, hay otro truco simple:

Lleva dos pasos:

  • crear un archivo de activación al iniciar sesión
  • cree un cronjob, ejecutado por root (establecido en /etc/crontab ), para ejecutar un pequeño script (ejecutando su comando) si y solo si el archivo desencadenante existe. Dado que el mismo script elimina el archivo de activación, su comando solo se ejecuta una vez.

La secuencia entonces es:

 USER LOGIN > trigger file is created > cronjob runs script (with your command) and removes trigger file, > next time the script passes, since the trigger file does not exist anymore 

La puesta en marcha

Los dos pequeños guiones:

Uno para crear el archivo de activación al iniciar sesión:

 #!/bin/sh touch $HOME/.trigger 

y uno dos ejecutan el comando:

 #!/bin/bash FILE="/path/to/your/homedirectory/.trigger" # don't use $HOME here, since you run it by root if [ -f $FILE ]; then  rm -f $FILE fi 
  • copie ambos scripts en dos archivos vacíos, guárdelos como create_trigger.sh y run_command.sh .
  • Por razones de conveniencia, conviértelos en ambos ejecutables.
  • Agregue el siguiente comando a sus aplicaciones de inicio (Dash> Aplicaciones de inicio> Agregar)

     /path/to/create_trigger.sh 
  • Agregue la siguiente línea al /etc/crontab ( sudo nano /etc/crontab ):

     * * * * * root /path/to/run_command.sh 

Ahora el comando definido se ejecuta una sola vez dentro de un minuto desde el inicio de sesión.