📜  linux 将进程发送到后台并关闭终端 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:17:22.951000             🧑  作者: Mango

Linux 将进程发送到后台并关闭终端

在 Linux 系统下,我们经常需要将某个进程放到后台运行,并且关闭终端时也不会将其终止。这在部署一些服务时尤为重要。本篇文章将介绍如何在 Linux 系统下将进程发送到后台并关闭终端的方法。

1. 使用 & 符号将进程放到后台运行

在 Linux 系统下,我们可以使用 & 符号将某个进程放到后台运行。例如,我们要在后台运行一个名为 myjob 的脚本,可以使用以下命令:

$ ./myjob &

注意,& 符号必须放在命令的末尾,否则会将命令放到前台运行。

2. 使用 nohup 命令将进程放到后台运行并不挂起

nohup 命令可以将进程放到后台运行,并且不会随着终端的关闭而挂起。例如,我们要在后台运行一个名为 myjob 的脚本,并且不希望随着终端的关闭而挂起,可以使用以下命令:

$ nohup ./myjob &
3. 使用 screen 命令在后台运行多个会话

如果我们需要在后台运行多个会话,并且可以在任何时候切换到这些会话,可以使用 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

这将恢复之前放在后台运行的会话。

4. 使用 disown 命令将进程放到后台运行并脱离终端

disown 命令可以将进程放到后台运行,并且脱离终端。与使用 nohup 命令类似,使用 disown 命令可以在终端关闭后继续运行进程。

例如,我们要将一个运行中的进程放到后台运行,并且脱离当前终端,可以使用以下命令:

$ Ctrl Z  # 暂停进程
$ bg      # 将暂停的进程放到后台运行
$ disown  # 将进程脱离当前终端
5. 总结

本篇文章介绍了 Linux 下将进程发送到后台并关闭终端的几种方法,包括使用 & 符号、nohup 命令、screen 命令和 disown 命令。不同的方法适用于不同的场景,可以根据具体需求进行选择。