Я пытаюсь запустить программу автоматически в скрипте bash после завершения сеанса LXDE. Мой скрипт состоит из:
#!/bin/sh
pkill lxsession;
sh /home/pi/RetroPie/EmulationStation/emulationstation
Я тоже попробовал это:
#!/bin/sh
nohup & pkill lxsession &
writevt /dev/tty1 'emulationstation'
Моя цель — выйти из сеанса LXDE и запустить EmulationStation на моем Raspberry Pi с помощью скрипта bash. Я использую его pkill lxsession;
для обхода диалогового окна подтверждения выхода lxsession.
В нынешнем виде этот скрипт просто переносит меня в командную строку с рабочего рабочего стола LXDE. Спасибо за чтение.
решение1
Я не думаю, что это возможно. Вы запускаете этот скрипт из эмулятора терминала, который сам запущен в сеансе LXDE. Когда вы убиваете сеанс LXDE, вы также убиваете терминал и, следовательно, ваш скрипт.
Возможным решением будет войти через другой tty и запустить свой скрипт там. Что именно вы пытаетесь сделать? Сработает ли root cronjob?
решение2
Здесь он writevt
недоступен, но я предполагаю, что он просто эмулирует ввод tty.
Вы можете попробовать запустить команду в ttyдоубив сессию X и дождаться, пока сессия X будет убита. Как насчет
#!/bin/sh
writevt /dev/tty1 'sleep 20s; emulationstation'` &
pkill lxsession
решение3
Попробуйте использовать «screen» при запуске скрипта из терминала или при создании лаунчера:
screen ./emu-script.sh
screen сохранит ваш сеанс терминала живым, даже если LXDE убьет, или что-то еще, что вы закроете. Таким образом, ваш скрипт может завершиться правильно