Estoy intentando ejecutar un programa automáticamente dentro de un script bash después de finalizar la sesión LXDE. Mi guión consta de:
#!/bin/sh
pkill lxsession;
sh /home/pi/RetroPie/EmulationStation/emulationstation
Probé esto también:
#!/bin/sh
nohup & pkill lxsession &
writevt /dev/tty1 'emulationstation'
Mi objetivo es cerrar sesión en LXDE y ejecutar EmulationStation en mi Raspberry Pi con un script bash. Estoy usando pkill lxsession;
para omitir el cuadro de 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 comando desde un escritorio LXDE en funcionamiento. Gracias por leer.
Respuesta1
No creo que eso sea posible. Ejecute este script desde un emulador de terminal que a su vez se ejecuta dentro de la sesión LXDE. Cuando cierras 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 el script allí. ¿Qué estás tratando de hacer exactamente? ¿Funcionaría un cronjob raíz?
Respuesta2
No está writevt
disponible aquí, pero supongo que solo emula la entrada tty.
Podrías intentar iniciar un comando en el tty.antesmatar la sesión X y hacer que espere hasta que se cierre la sesión X. Qué tal si
#!/bin/sh
writevt /dev/tty1 'sleep 20s; emulationstation'` &
pkill lxsession
Respuesta3
Intente usar 'pantalla' cuando ejecute el script desde la terminal o cuando cree un iniciador:
screen ./emu-script.sh
La pantalla mantendrá viva la sesión de su terminal incluso si LXDE se interrumpe o cualquier otra cosa que haya apagado. De esa manera tu guión puede terminar correctamente.