如何从终端运行命令而不阻止它?

Sal*_*ali 69 terminal ubuntu

我从终端在 Ubuntu 中运行了很多程序,但我希望在打开程序后能够继续使用终端。如何将程序置于后台以便不必打开另一个窗口?

Win*_*ist 80

有多种方法可以运行终端程序并继续使用终端:

  • 您可以打开另一个终端选项卡(右键单击,然后选择“打开新选项卡”)。
  • 您可以附加&到您运行的命令。请注意,您不会在终端看到文本输出,例如错误消息。
  • 您可以输入Ctrl-Z然后运行bg。这与运行的效果相同command &
  • 您可以运行nohup command &然后按回车键。(感谢ccpizza,请参阅下面的评论。)

但是,按Alt-F2然后从 GUI 运行您的命令通常被认为是最佳实践 - 根本没有终端!

请注意,在使用&(not nohup) 时,关闭终端仍将终止应用程序,除非您disown随后运行

编辑:看起来使用nohup有时会在您的主文件夹中留下少量粪便。通常会记录到终端的内容显然已保存到 ~/.bashrc 中的文件中。

~~

在后台运行程序的一种简单方法是program-name & disown,它会将您带到一个终端,该终端可以在不终止进程的情况下关闭。

  • 为了防止在终端关闭后杀死子进程,您可以将您的应用程序启动为 `nohup firefox&`。 (5认同)
  • `program-name & disown` 是一个不错的解决方案 (4认同)

小智 9

您可以使用setsid在新会话中运行程序,&>/dev/null以便您不会收到任何日志消息。

所以它会像

setsid program-name &>/dev/null


小智 8

您可以运行带有 & 之后的命令。

例如:

雷鸟 &

请参阅此处了解更多信息。

  • 这仅在您关闭终端窗口之前有效,一旦关闭窗口,程序将终止 (2认同)