📅  最后修改于: 2023-12-03 15:17:22.951000             🧑  作者: Mango
在 Linux 系统下,我们经常需要将某个进程放到后台运行,并且关闭终端时也不会将其终止。这在部署一些服务时尤为重要。本篇文章将介绍如何在 Linux 系统下将进程发送到后台并关闭终端的方法。
在 Linux 系统下,我们可以使用 & 符号将某个进程放到后台运行。例如,我们要在后台运行一个名为 myjob 的脚本,可以使用以下命令:
$ ./myjob &
注意,& 符号必须放在命令的末尾,否则会将命令放到前台运行。
nohup 命令可以将进程放到后台运行,并且不会随着终端的关闭而挂起。例如,我们要在后台运行一个名为 myjob 的脚本,并且不希望随着终端的关闭而挂起,可以使用以下命令:
$ nohup ./myjob &
如果我们需要在后台运行多个会话,并且可以在任何时候切换到这些会话,可以使用 screen 命令。使用 screen 命令可以创建一个虚拟终端,并在该终端中运行多个会话。
首先,我们需要安装 screen 命令:
$ sudo apt install screen # Ubuntu 或 Debian 系统
$ sudo yum install screen # CentOS 或 RHEL 系统
安装完成后,我们可以使用以下命令启动一个新会话:
$ screen
这将启动一个新的会话,并在该会话中运行默认的 shell。我们可以在该会话中运行任何命令,并使用以下键盘快捷键进行会话管理:
Ctrl A + C
: 创建一个新窗口Ctrl A + N
: 切换到下一个窗口Ctrl A + P
: 切换到上一个窗口Ctrl A + D
: 将当前会话放到后台运行,并返回到主 shell 当我们需要恢复之前的会话时,可以使用以下命令:
$ screen -r
这将恢复之前放在后台运行的会话。
disown 命令可以将进程放到后台运行,并且脱离终端。与使用 nohup 命令类似,使用 disown 命令可以在终端关闭后继续运行进程。
例如,我们要将一个运行中的进程放到后台运行,并且脱离当前终端,可以使用以下命令:
$ Ctrl Z # 暂停进程
$ bg # 将暂停的进程放到后台运行
$ disown # 将进程脱离当前终端
本篇文章介绍了 Linux 下将进程发送到后台并关闭终端的几种方法,包括使用 & 符号、nohup 命令、screen 命令和 disown 命令。不同的方法适用于不同的场景,可以根据具体需求进行选择。