通过bash诸如守护程序运行程序

时间:2018-10-24 11:32:07

标签: linux bash

通常,我只在终端中运行GUI程序(如libreoffice),但这意味着在运行应用程序时必须打开终端。

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

1 个答案:

答案 0 :(得分:0)

您需要bash命令nohup,该命令将一个进程与终端断开连接,以便即使终端关闭也可以继续运行。使用它来像这样运行“ nautilus”:

nohup nautilus

您将看到,它警告所有来自nautilus的stdout都保存在一个名为nohup.out的文件中。如果您不在乎GUI应用程序中的stdout,并且不想创建这些nohup.out文件,则可以将stdout重定向到/ 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