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 writevt
nã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