2017-08-24 161 views
2

我試圖在Ubuntu上啓動GUI應用程序(rhythmbox)。在下面我嘗試解釋執行文件的鏈。從Bash腳本啓動Bash腳本以啓動GUI應用程序

# Window manager executes first 
~/i3wm_cmd_wrapper.sh Window_Name ~/mount_enc.sh 

這個包裝器使用gnome-terminal來執行東西。這使得在用戶可以輸入信息的啓動時打開終端。

# mount_enc.sh launches the following command in the end 
bash ~/launch_in_bg.sh rhythmbox 

mount_enc.sh確實從普通終端啓動時應該做什麼。但是我想在啓動時自動啓動它,並且在腳本完成後應該保持打開rhythmbox。

# launch_in_bg.sh is just doing what it's supposed to 
($PRGRM > /dev/null 2>&1) & 

我無法讓gnome終端爲我打開rhythmbox。另外我認爲我的方法是錯誤的,如果我想讓rhythmbox在gnome終端完成執行mount_enc.sh腳本後繼續運行。任何人都可以想出更好的解決方案嗎?

回答

1

如果您從控制檯(即使在後臺)打開程序,程序的進程是控制檯進程的子進程,並在控制檯進程終止時終止。 爲了使程序的進程保持運行,它必須從控制檯進程中分離出來。分離可以通過多種方式完成。一些例子:

nohup rhythmbox & 

rhythmbox & disown 

爲了抑制輸出,使用重定向在你的腳本。