Tengo dos scripts, uno para montar algunas carpetas sobre SSHFS, y otro para desmontar.
Me gustaría iniciar el script de montaje cuando se inicia mi escritorio Ubuntu predeterminado (después de iniciar sesión en la consola gráfica), y el script de desmontaje cuando "Salgo ..." de la rueda dentada en la esquina superior derecha de el escritorio.
Por favor, ¿alguien puede decirme cómo lograr esto? ¿Cuáles son los ganchos más convenientes / estándar para ejecutar comandos en el inicio / salida del escritorio?
Respuestas:
Teniendo en cuenta su requisito de ejecutar un trabajo cuando inicia sesión en Unity y no para otros inicios de sesión, un trabajo de sesión Upstart parece perfecto.
Es posible que lo hayas notado: los procesos que ejecutas después de un inicio de sesión de GUI están bajo un segundo
init
proceso. Esteinit
es un inicio de inicio adecuado, y puede iniciar y detener trabajos de sesión en función de los eventos emitidos por él. No se necesitan privilegios de root en absoluto. Mejor aún (o peor dependiendo de la perspectiva), esto aún no es completamente compatible con los sistemas sin cabeza. Un inicio de sesión SSH no inició el inicio del usuario desde una prueba rápida que hice justo ahora.Para crear un trabajo de sesión, cree un nuevo
.conf
archivo en~/.config/upstart
. Ese es el directorio primario predeterminado para los trabajos de sesión Upstart ($XDG_CONFIG_HOME/upstart
), créelo si no existe. Aquí hay un ejemplo de trabajo:Puedes controlarlo manualmente:
Los
service
comandos se utilizan para controlar los trabajos del sistema (aquellos en/etc/init.d
o/etc/init
). Para controlar los trabajos de sesión, es necesario usar elinitctl
comando, que se usa para interactuar con Upstart.Vea
man upstart-events
para más eventos que puede usar.fuente
La solución fue utilizar tareas iniciales. Requerí dos tareas: una disparada cuando el escritorio se inicializa para un usuario; el segundo cuando expira la sesión del usuario. Los siguientes dos scripts me funcionan en Ubuntu 14.04.
En ~ / .config / upstart / desktopOpen.conf
En ~ / .config / upstart / desktopClose.conf
Tengo los dedos cruzados de que estos eventos continuarán cumpliendo los requisitos en futuras versiones de Ubuntu. Pensé que valía la pena publicar mi solución aquí, en caso de que sea útil para otros.
fuente
Aquí hay algunas sugerencias para ejecutar un script después de iniciar sesión:
Script de StackOverflow Linux después del arranque : Cliff señala que debe colocar su archivo * .sh en /etc/profile.d.
Si desea ejecutar scripts al inicio, aquí hay algunas sugerencias para eso:
Script de StackOverflow Linux después del arranque : Cliff señala que debe usar /etc/rc.local o crontab.
fuente