如何将正在运行的进程移至后台 (UNIX)

Posted

技术标签:

【中文标题】如何将正在运行的进程移至后台 (UNIX)【英文标题】:How to move a running process to background (UNIX) 【发布时间】:2018-02-27 05:56:48 【问题描述】:

我有一个通过 ssh 连接到外部机器的终端,并且有一个进程在其中运行。 是否可以将执行移到后台,以便我可以关闭 ssh 连接而无需杀死它?如果有怎么办?

【问题讨论】:

我投票结束这个问题,因为这个问题属于 Stack Exchange 网络中的Unix & Linux。 【参考方案1】:

按 control + Z,这将暂停它并将其发送到后台。然后输入bg 继续在后台运行。

或者,如果您在命令末尾添加& 以从一开始就在后台运行它。

这只会让它在后台运行,一旦你注销它仍然会被杀死。为了在注销后保持运行,您需要使用disown -h“拒绝”该进程,这样shell 就不会将其计入需要在注销时终止的进程中。详情请见this post。

【讨论】:

另一种方法是在运行进程的命令末尾添加&,该进程会在后台自动启动。 谢谢,它成功了。是的,我知道@alfasin。但我认为处决不会花费这么多时间。还是谢谢。【参考方案2】:

您也可以使用“screen”命令,一旦您与它分离,该命令将继续运行其中的进程。

【讨论】:

我已经习惯使用 tmux 来达到同样的效果

以上是关于如何将正在运行的进程移至后台 (UNIX)的主要内容,如果未能解决你的问题,请参考以下文章

如何将命令行参数传递给 unix/linux 系统上正在运行的进程?

Linux入门之Linux环境下如何让进程在后台运行

如何检查正在运行的进程是不是是后台进程? [关闭]

如何将 sizeForItemAt 放在后台线程上?

如何使用 UNIX shell 脚本并行运行一个进程多次?

linux 远程主机后台运行任务 挂起脚本