2

Я пытаюсь запустить программу автоматически в 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. Спасибо за прочтение.

3 ответа3

0

Я не думаю, что это возможно. Этот сценарий запускается из эмулятора терминала, который сам работает в сеансе LXDE. Когда вы убиваете сеанс LXDE, вы также убиваете терминал и, следовательно, ваш скрипт.

Возможный обходной путь - войти через другой tty и запустить там свой скрипт. Что именно ты пытаешься сделать? Будет ли работать корневой cronjob?

0

Функция writevt здесь недоступна, но я предполагаю, что она просто эмулирует ввод tty.

Вы можете попробовать запустить команду в tty перед тем, как завершить сеанс X, и подождать, пока X sessoin не будет уничтожен. Как насчет

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

Попробуйте использовать 'screen', когда вы запускаете скрипт из терминала или когда вы создаете панель запуска:

screen ./emu-script.sh

screen будет поддерживать ваш сеанс терминала, даже если LXDE убьет или что-то еще, что у вас отключено. Таким образом, ваш сценарий может завершиться правильно

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .