![如何在不阻止终端的情况下运行终端命令?](https://linux22.com/image/1341032/%E5%A6%82%E4%BD%95%E5%9C%A8%E4%B8%8D%E9%98%BB%E6%AD%A2%E7%BB%88%E7%AB%AF%E7%9A%84%E6%83%85%E5%86%B5%E4%B8%8B%E8%BF%90%E8%A1%8C%E7%BB%88%E7%AB%AF%E5%91%BD%E4%BB%A4%EF%BC%9F.png)
我在 Ubuntu 中从终端运行了很多程序,但我希望在打开程序后能够继续使用终端。如何将程序置于后台,这样我就不必打开另一个窗口了?
答案1
有不同的方法可以运行终端程序并继续使用终端:
- 您可以打开另一个终端选项卡(右键单击,然后选择“打开新选项卡”)。
- 您可以将其附加
&
到您运行的命令中。请注意,您将看不到终端的文本输出,例如错误消息。 - 您可以输入Ctrl-Z然后运行
bg
。这与运行的效果相同command &
- 您可以运行
nohup command &
,然后按 Enter。(感谢披萨,请参阅下面的评论。)
但是,按下Alt-F2然后从 GUI 运行命令通常被认为是最佳做法 - 根本没有终端!
请注意,使用&
(不是nohup
)时,关闭终端仍将终止应用程序,除非你disown
随后运行。
编辑:看起来使用nohup
有时会在您的主文件夹中留下一些小东西。通常会记录到终端的内容显然保存在 ~/ 中的文件中。
~~
在后台运行程序的一个简单方法是program-name & disown
,它会将您带入一个可以关闭的终端而无需终止进程。
答案2
您可以使用setsid
在新的会话中运行程序,这样&>/dev/null
您就不会收到任何日志消息。
所以就像
setsid program-name &>/dev/null
答案3
答案4
使用screen
命令,您可以使用单个窗口打开多个终端会话
apt-get install screen (On Debian based Systems)
yum install screen (On RedHat based Systems)
screen
(开始新屏幕)
[Your command]
Ctrl+A d
离开屏幕...等等