Linux 通过类似bash的守护进程运行程序

Linux 通过类似bash的守护进程运行程序,linux,bash,Linux,Bash,通常我只在终端上运行像libreoffice这样的GUI程序,但这意味着在运行应用程序时终端必须是打开的 即使我关闭终端,如何让GUI程序继续运行?您需要bash命令nohup,它将进程与终端断开连接,以便即使终端关闭,它也能继续运行。使用它运行“nautilus”,如下所示: nohup nautilus 正如您将看到的,它警告来自nautilus的任何标准输出都保存在名为nohup.out的文件中。如果您不关心GUI应用程序中的标准输出,也不想创建这些nohup.out文件,那么可以将标准

通常我只在终端上运行像libreoffice这样的GUI程序,但这意味着在运行应用程序时终端必须是打开的

即使我关闭终端,如何让GUI程序继续运行?

您需要bash命令nohup,它将进程与终端断开连接,以便即使终端关闭,它也能继续运行。使用它运行“nautilus”,如下所示:

nohup nautilus
正如您将看到的,它警告来自nautilus的任何标准输出都保存在名为nohup.out的文件中。如果您不关心GUI应用程序中的标准输出,也不想创建这些nohup.out文件,那么可以将标准输出重定向到/dev/null。如果您这样做,nohup将保存stderr。因此,您需要重定向这两个方向:

nohup nautilus >/dev/null 2>&1
另外,由于我不明白的原因,这现在是一个阻塞呼叫(即你没有得到你的终端提示)。因此,您需要在后台运行:

nohup nautilus >/dev/null 2>&1 &
我在.bashrc中创建了一个Bash函数,因此不需要键入以上所有内容:

nh () 
{ 
    nohup "$@" > /dev/null 2>&1 &
}
然后我可以去:

nh nautilus

nohup程序,请参阅。如果您对文本终端及其输出完全不感兴趣,为什么要在文本终端中启动gui应用程序?在我看来,您实际上只对启动应用程序的简单方式感兴趣,但您不需要终端。例如,为应用程序创建键盘快捷键。或者在桌面可见时键入命令,现代桌面环境(如KDE)将使用启动器启动应用程序。它们还提供了一个明确的启动程序,通常是ALT-F2。虽然我不会进一步向下投票,但请参阅以获取有关提问的建议,特别是显示您的尝试,并阅读上的分类以获取有指导意义的示例和解释。守护进程通常与nohup一起运行,尽管您可以使用trap“…”HUP将其直接编码到脚本中,以忽略挂起的问题;StackOverflow的范围仅限于有关软件开发的问题。谢谢!我是说,真的谢谢你。我知道,这是个愚蠢的问题。但对我来说,得到答案很重要。嘿,如果你读过的话。在阅读《Linux简介-实践指南》第5章I/O重定向之后,您将理解为什么它会阻止调用。