让程序在终端中运行

让程序在终端中运行

所以我很清楚,nohup并在命令后加上后缀以&确保它们进入后台。

但是,如果我运行图形应用程序 - 有时使用两者似乎都不起作用。那么我可以在程序/命令前加上什么前缀来确保它在终端关闭后继续运行?

答案1

如果您希望应用程序在关闭终端窗口时继续运行,您应该执行以下操作:

nohup chromium-browser &

您需要nohup&

  • nohup 表示在 shell 关闭后仍保持此进程/命令运行。
  • & 表示将此过程/命令放在后台,这样它就不会阻塞 shell(因此您可以将它用于其他用途。

答案2

当通过 & 运算符在后台运行程序时,它仍然附加到您的会话,并且可以使用 fg、bg、jobs 和 disown 进行控制。

我也遇到了一些有关 nohup 的问题,但 disown 可能就是您要找的东西。

当你在后台运行一个程序时,它有一个作业 ID:

gedit &
[1] 5647

括号 [] 中的数字很有趣。要将其从会话中分离出来,请disown %n使用该数字运行。对于上述示例:

disown %1

现在您可以安全地退出终端,并且进程不会被终止。

答案3

对于图形应用程序,只需执行这样的操作就可以了(至少对我来说是这样)

chromium-browser&

对于终端应用程序,您应该使用类似screen或 之类的东西tmux

答案4

使用以下命令关闭启动图形程序的终端:

exit

相关内容