Execute um script após encerrar o lxsession (xorg)

Execute um script após encerrar o lxsession (xorg)

Estou tentando executar um programa automaticamente dentro de um script bash depois de encerrar a sessão do LXDE. Meu roteiro consiste em:

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

Eu tentei isso também:

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

Meu objetivo é sair da sessão LXDE e executar o EmulationStation no meu Raspberry Pi com um script bash. Estou usando pkill lxsession;para ignorar a caixa de diálogo de confirmação de logout do lxsession.

Do jeito que está, esse script apenas me leva à linha de comando de um desktop LXDE em funcionamento. Obrigado por ler.

Responder1

Eu não acho que isso seja possível. Você executa este script a partir de um emulador de terminal que está sendo executado na sessão LXDE. Ao encerrar a sessão do LXDE, você também encerra o terminal e, portanto, o seu script.

Uma possível solução seria fazer login através de um tty diferente e executar seu script lá. O que exatamente você está tentando fazer? Um cronjob root funcionaria?

Responder2

O writevtnão está disponível aqui, mas presumo que apenas emule a entrada tty.

Você poderia tentar iniciar um comando no ttyantesmatando a sessão X e espere até que a sessão X seja morta. Que tal

#!/bin/sh
writevt /dev/tty1 'sleep 20s; emulationstation'` & 
pkill lxsession

Responder3

Tente usar 'screen' ao executar o script no terminal ou ao criar um inicializador:

screen ./emu-script.sh

screen manterá sua sessão de terminal ativa mesmo se o LXDE for encerrado ou qualquer outra coisa que você tenha desligado. Dessa forma, seu script pode terminar corretamente

informação relacionada