通常,我只在终端中运行GUI程序(如libreoffice),但这意味着在运行应用程序时必须打开终端。
即使关闭终端,如何让GUI程序继续运行?
答案 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