¿Dónde están los scripts de inicio para Unity Desktop?
11
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?
@Shnd X en realidad comienza antes de lightdm, porque lightdm también se ejecuta en X. Por lo tanto, si desea ejecutar algo como su usuario, probablemente lo desee "después de que la autenticación de lightdm haya tenido éxito" o, en otras palabras, "cuando se inicia el escritorio". También es posible ejecutar un script cuando su computadora solo inicia, no importa si tiene un usuario conectado o no (eso es lo que inicia X, por ejemplo) que esa es una pregunta completamente diferente. Si desea ejecutar algo como usuario, probablemente lo desee y la respuesta depende de su sistema de inicio.
erikbwork
Respuestas:
5
Primero coloque su script /usr/biny 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/
"$ HOME / .config / upstart" no existe tal directorio en mi máquina.
Kalamalka Kid
1
@KalamalkaKid ¿Qué versión de Ubuntu utilizas? El directorio inicial debe estar en esta ubicación /home/yourusername/.config/upstart/. Abra el director de su casa en nautilus, presione Ctrl + H y debería ver el directorio .config
TuKsn
2
Para ejecutar un comando como root , después de iniciar sesión, hay otro truco simple:
Toma dos pasos:
crear un archivo desencadenante al iniciar sesión
cree un cronjob, ejecutado por root (configurado /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
copie ambos scripts en dos archivos vacíos, guárdelos como create_trigger.shy run_command.sh.
Por razones de conveniencia, haga que ambos sean ejecutables.
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/crontabarchivo ( 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.
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/
Aquí
Exec=sudo example
oExec=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.
fuente
Otra posibilidad:
Crea un archivo en
$HOME/.config/upstart/my-upstart-script.conf
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:¿Cómo ejecutar una aplicación usando sudo sin contraseña?
¿Cómo ejecuto comandos sudo específicos sin contraseña?
fuente
/home/yourusername/.config/upstart/
. Abra el director de su casa en nautilus, presione Ctrl + H y debería ver el directorio .configPara 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:
La puesta en marcha
Los dos pequeños guiones:
Uno para crear el archivo desencadenante al iniciar sesión:
y uno dos ejecuta el comando:
create_trigger.sh
yrun_command.sh
.Agregue el siguiente comando a sus Aplicaciones de inicio (Tablero> Aplicaciones de inicio> Agregar)
Agregue la siguiente línea al
/etc/crontab
archivo (sudo nano /etc/crontab
):Ahora el comando definido se ejecuta una sola vez dentro de un minuto desde el inicio de sesión.
fuente