Запустить скрипт после завершения lxsession (xorg)

Запустить скрипт после завершения lxsession (xorg)

Я пытаюсь запустить программу автоматически в скрипте 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 убьет, или что-то еще, что вы закроете. Таким образом, ваш скрипт может завершиться правильно

Связанный контент