LXDE 세션을 종료한 후 bash 스크립트 내에서 자동으로 프로그램을 실행하려고 합니다. 내 스크립트는 다음으로 구성됩니다.
#!/bin/sh
pkill lxsession;
sh /home/pi/RetroPie/EmulationStation/emulationstation
나는 이것을 또한 시도했다:
#!/bin/sh
nohup & pkill lxsession &
writevt /dev/tty1 'emulationstation'
내 목표는 LXDE 세션에서 로그아웃하고 bash 스크립트를 사용하여 내 Raspberry Pi에서 EmulationStation을 실행하는 것입니다. pkill lxsession;
lxsession의 로그아웃 확인 대화 상자를 우회하는 데 사용하고 있습니다 .
현재로서는 이 스크립트를 사용하면 작동 중인 LXDE 데스크탑의 명령줄로 이동할 수 있습니다. 읽어 주셔서 감사합니다.
답변1
나는 그것이 가능하다고 생각하지 않습니다. LXDE 세션 내에서 자체적으로 실행되는 터미널 에뮬레이터에서 이 스크립트를 실행합니다. LXDE 세션을 종료하면 터미널과 스크립트도 종료됩니다.
가능한 해결 방법은 다른 tty를 통해 로그인하고 그곳에서 스크립트를 실행하는 것입니다. 정확히 무엇을 하려는 건가요? 루트 cronjob이 작동합니까?
답변2
여기서는 사용할 writevt
수 없지만 tty 입력을 에뮬레이트한다고 가정합니다.
tty에서 명령을 시작해 볼 수 있습니다.~ 전에X 세션을 종료하고 X 세션이 종료될 때까지 기다리게 합니다. 어때?
#!/bin/sh
writevt /dev/tty1 'sleep 20s; emulationstation'` &
pkill lxsession
답변3
터미널에서 스크립트를 실행하거나 실행 프로그램을 만들 때 'screen'을 사용해 보세요.
screen ./emu-script.sh
화면은 LXDE가 종료되거나 기타 종료된 경우에도 터미널 세션을 활성 상태로 유지합니다. 그렇게 하면 스크립트가 제대로 완료될 수 있습니다.