我試圖在終止 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 也會使您的終端會話保持活動狀態。這樣你的腳本就可以正確完成