我尝试在终止 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 登录并在那里运行脚本。你到底想做什么?root cronjob 能工作吗?
答案2
这里writevt
没有,但我认为它只是模拟 tty 输入。
您可以尝试在 tty 中启动命令前终止 X 会话,并让它等待直到 X 会话被终止。
#!/bin/sh
writevt /dev/tty1 'sleep 20s; emulationstation'` &
pkill lxsession
答案3
当您从终端运行脚本或者创建启动器时,尝试使用“屏幕”:
screen ./emu-script.sh
即使 LXDE 终止,或者您关闭了其他任何程序,screen 仍会保持您的终端会话处于活动状态。这样您的脚本就可以正常完成