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)
有用。但如果可能的话,我仍然想解释为什么从桌面启动器启动时原始版本不起作用。
解决方案是简单地在管道中使用正确的形式:
firefox > /dev/null 2>&1
exit
Run Code Online (Sandbox Code Playgroud)
这适用于终端和桌面启动器。无需使用 nohup。
试试 nohup 命令:
nohup firefox & 2> /dev/null; exit;
Run Code Online (Sandbox Code Playgroud)
nohup 将正在运行的作业与终端会话断开连接,以防止它们在退出时被关闭。
但是,如果您只想启动 Firefox,那么只需创建一个快捷方式即可,无需 bash 脚本。
进一步解释:尝试从终端运行脚本,让 Firefox 窗口保持打开状态并关闭运行脚本的终端。Firefox 将关闭,因为它是启动它的终端会话的子进程。