从Bash脚本启动Bash脚本以启动GUI应用程序

时间:2017-08-24 08:53:46

标签: linux bash shell startup gnome-terminal

我正在尝试在Ubuntu上启动GUI应用程序(rhythmbox)。在下面我尝试解释执行文件链。

# 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-terminal为我打开rhythmbox。另外我认为如果我希望在gnome-terminal完成执行mount_enc.sh脚本后,rhythmbox继续运行,我的方法是错误的。谁能想到更好的解决方案?

1 个答案:

答案 0 :(得分:3)

如果从控制台打开程序(即使在后台),程序的进程是控制台进程的子进程,并在控制台进程终止时终止。 要使程序的进程保持运行,必须将其从控制台进程中分离出来。分离可以通过多种方式完成。一些例子:

nohup rhythmbox &

rhythmbox & disown

要抑制输出,请使用脚本中的重定向。