从 Bash 脚本启动 GUI 应用程序的 Bash 脚本
Start Bash Script from Bash Script to Launch GUI Application
我正在尝试在 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 终端为我打开 rhythmbox。另外,如果我希望 rhythmbox 在 gnome-terminal 完成执行 mount_enc.sh 脚本后保留 运行,我认为我的方法是错误的。有人能想出更好的解决方案吗?
如果您从控制台(即使在后台)打开一个程序,该程序的进程是控制台进程的子进程,并且将在控制台进程终止时终止。
要保留程序的进程 运行,它必须与控制台进程分离。分离可以通过多种方式完成。一些例子:
nohup rhythmbox &
或
rhythmbox & disown
要抑制输出,请像在脚本中那样使用重定向。
我正在尝试在 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 终端为我打开 rhythmbox。另外,如果我希望 rhythmbox 在 gnome-terminal 完成执行 mount_enc.sh 脚本后保留 运行,我认为我的方法是错误的。有人能想出更好的解决方案吗?
如果您从控制台(即使在后台)打开一个程序,该程序的进程是控制台进程的子进程,并且将在控制台进程终止时终止。 要保留程序的进程 运行,它必须与控制台进程分离。分离可以通过多种方式完成。一些例子:
nohup rhythmbox &
或
rhythmbox & disown
要抑制输出,请像在脚本中那样使用重定向。