Quiero ejecutar un script tan pronto como mi autenticación lightdm sea exitosa y mi Unidad comience a cargarse. y quiero ejecutar mis scripts como usuario root.
¿Dónde se encuentran los scripts de inicio en Unity?
Quiero ejecutar un script tan pronto como mi autenticación lightdm sea exitosa y mi Unidad comience a cargarse. y quiero ejecutar mis scripts como usuario root.
¿Dónde se encuentran los scripts de inicio en Unity?
Respuestas:
Primero coloque su script /usr/bin
y otorgue permiso de ejecución.
Ahora cree un archivo .desktop en el /home/[user-name]/.config/autostart/
que ejecute su script que se ejecuta al inicio.
Ejemplo: - Deje que su nombre de archivo del script sea "ejemplo" o "ejemplo.sh"
Cree un 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
Dar permiso de ejecución al archivo .desktop.
Ahora, Script se ejecuta al inicio.
Otra posibilidad:
Crea 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/
Información para ejecutar sudo
sin contraseña:
/home/yourusername/.config/upstart/
. Abra el director de su casa en nautilus, presione Ctrl + H y debería ver el directorio .config
Para ejecutar un comando como root , después de iniciar sesión, hay otro truco simple:
Toma dos pasos:
/etc/crontab
), para ejecutar un pequeño script (ejecutando su comando) si y solo si el archivo desencadenante existe. Dado que el mismo archivo elimina el archivo desencadenante, 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 desencadenante al iniciar sesión:
#!/bin/sh
touch $HOME/.trigger
y uno dos ejecuta 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
<your command here, run by root>
rm -f $FILE
fi
create_trigger.sh
y run_command.sh
.Agregue el siguiente comando a sus Aplicaciones de inicio (Tablero> Aplicaciones de inicio> Agregar)
/path/to/create_trigger.sh
Agregue la siguiente línea al /etc/crontab
archivo ( 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.