我正在尝试在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继续运行,我的方法是错误的。谁能想到更好的解决方案?
答案 0 :(得分:3)
如果从控制台打开程序(即使在后台),程序的进程是控制台进程的子进程,并在控制台进程终止时终止。 要使程序的进程保持运行,必须将其从控制台进程中分离出来。分离可以通过多种方式完成。一些例子:
nohup rhythmbox &
或
rhythmbox & disown
要抑制输出,请使用脚本中的重定向。