通常我只在终端中运行 GUI 程序(如 libreoffice),但这意味着运行应用程序时必须打开终端。
如何让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
关于linux - 通过类似守护进程的 bash 运行程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52967895/