防止应用程序在终端退出时关闭

Lar*_*ars 3 command-line bash 10.10 nohup

我创建了一个启动应用程序的 bash 脚本。由于我希望在应用程序启动时关闭终端窗口,所以我使用了这一行:

firefox & 2> /dev/null; exit;
Run Code Online (Sandbox Code Playgroud)

只要我从命令行启动脚本,它就可以正常工作。但是,如果我从桌面启动器启动它,应用程序和终端都会关闭。谁能解释这是为什么。我使用的是 Ubuntu 10.10。

仅使用:

    nohup firefox
Run Code Online (Sandbox Code Playgroud)

有用。但如果可能的话,我仍然想解释为什么从桌面启动器启动时原始版本不起作用。

Lar*_*ars 7

解决方案是简单地在管道中使用正确的形式:

firefox > /dev/null 2>&1
exit
Run Code Online (Sandbox Code Playgroud)

这适用于终端和桌面启动器。无需使用 nohup。


Mic*_*l K 5

试试 nohup 命令:

nohup firefox & 2> /dev/null; exit;
Run Code Online (Sandbox Code Playgroud)

nohup 将正在运行的作业与终端会话断开连接,以防止它们在退出时被关闭。

但是,如果您只想启动 Firefox,那么只需创建一个快捷方式即可,无需 bash 脚本。

进一步解释:尝试从终端运行脚本,让 Firefox 窗口保持打开状态并关闭运行脚本的终端。Firefox 将关闭,因为它是启动它的终端会话的子进程。