Ejecuta un script después de matar a lxsession (xorg)

2

Estoy tratando de ejecutar un programa automáticamente dentro de un script bash después de matar la sesión LXDE. Mi guión consta de:

#!/bin/sh
pkill lxsession;
sh /home/pi/RetroPie/EmulationStation/emulationstation

Intenté esto también:

#!/bin/sh
nohup & pkill lxsession & 
writevt /dev/tty1 'emulationstation'

Mi objetivo es cerrar la sesión de LXDE y ejecutar EmulationStation en mi Raspberry Pi con un script bash. Estoy usando pkill lxsession;para evitar el diálogo de confirmación de cierre de sesión de lxsession.

Tal como está, este script simplemente me lleva a la línea de comandos desde un escritorio LXDE en funcionamiento. Gracias por leer.

Objeto Básico
fuente

Respuestas:

0

No creo que eso sea posible. Ejecuta este script desde un emulador de terminal que se está ejecutando dentro de la sesión LXDE. Cuando matas la sesión LXDE, también matas el terminal y, por lo tanto, tu script.

Una posible solución sería iniciar sesión a través de un tty diferente y ejecutar su script allí. ¿Qué estás tratando de hacer exactamente? ¿Funcionaría un rootjob cronjob?

terdon
fuente
Estoy tratando de crear un acceso directo en mi escritorio que cierra sesión en LXDE / Xorg y luego ejecuta el emulador front-end EmulationStation que no se puede ejecutar mientras X se está ejecutando. Estaba bastante seguro de que era posible enviar un comando a una terminal recién abierta, pero podría estar equivocado. Gracias por su respuesta.
BasicObject
0

El writevtno está disponible aquí, pero supongo que solo emula la entrada tty.

Puede intentar iniciar un comando en el tty antes de finalizar la sesión X y hacer que espere hasta que se elimine el sessoin X. Qué tal si

#!/bin/sh
writevt /dev/tty1 'sleep 20s; emulationstation'` & 
pkill lxsession
Eroen
fuente
Tuve que eliminar la marca de retroceso antes &de ejecutar el código. Simplemente me dejó caer en tty1 al igual que mi código anterior. Sin embargo, gracias por su sugerencia. Tiene que haber una manera de hacerlo con bash.
BasicObject
0

Intente usar 'pantalla' cuando ejecute el script desde la terminal o cuando cree un iniciador:

screen ./emu-script.sh

La pantalla mantendrá viva su sesión de terminal incluso si LXDE mata, o cualquier otra cosa que haya apagado. De esa manera, tu script puede terminar correctamente

CenterOrbit
fuente