如何在后台运行 Linux 命令

Linux 命令是使用终端与系统交互的好方法。 但是,有时可能需要一段时间才能完成手头的任务。 这迫使用户要么等待相当长的时间来完成该过程,要么完全生成一个新的 shell。

幸运的是,您可以通过一些简单的方法在后台运行 Linux 命令。

1. 在你的命令之后添加一个 & 符号

运行 Linux 后台命令的最简单方法是添加 与号 (&) 命令后的符号。 例如,如果您从终端启动 gedit 文本编辑器,您将无法使用 shell,直到您 close 编辑。 但是,当您添加额外的 & 根据您的命令,您将能够立即使用 shell。

gedit &

2.使用bg发送运行命令到后台

有时您运行一个命令只是发现它需要更长的时间才能完成。 您可以通过点击 Ctrl + Z 键,然后使用 bg 命令。 打 Ctrl + Z 停止正在运行的进程,并且 bg 把它带到后台。

您可以通过键入查看所有后台任务的列表 工作 在终端。 使用 fg 命令返回到正在运行的任务。

3. 使用 nohup 将命令发送到后台

诺哈普 Linux 中的命令允许管理员运行不受 HUP 或 挂断 信号。 您可以使用 nohup 在 Linux 后台轻松运行命令。

下面的示例在后台运行一个简单的 Nmap 端口扫描。

nohup sudo nmap -sS --top-ports=15 192.168.1.1/24

nohup 的一个主要好处是即使您退出 shell,您的命令也会运行。 此外,它还会生成执行日志文件。 寻找 nohup.out 在当前目录或 $HOME 中。

4. 使用系统重定向运行后台命令

您还可以使用系统重定向在 Linux 中运行后台命令。 例如,如果您运行以下 命令,您的 shell 将在后台运行它并立即将终端控制权交还给您。

ping -c5 8.8.8.8 >output.log 2>&1 &

这里 ping 命令的输出被重定向到 输出日志 文件。 您可以将其替换为 /dev/null 如果你想丢弃结果。 这 2>&1 告诉 Bash 将任何错误重定向到同一个文件。 决赛 & 指示 Bash 在后台运行此命令。

5. 使用 disown 将 Linux 命令设置为在后台运行

否认 命令使在后台运行进程变得容易。 首先,您需要使用 & 操作员。 然后,输入 否认 将其从您的外壳中分离出来。

gedit &
disown

disown 的一个主要优点是,与 nohup 一样,系统不会在您执行任务时终止您的任务。 close 你的外壳或注销。

6. 使用 tmux 在后台运行 Linux 命令

tmux 是一个强大的多路复用器,允许您在单个窗口中运行多个终端会话。 学习如何在 Linux 上使用和配置 tmux 对于不熟悉它的人来说是一个很好的选择。 tmux 使在 Linux 中运行后台命令毫不费力。

tmux new -d 'ping -c 10 8.8.8.8 > output.log'

当你运行上述 多路复用器 命令,它将执行 在单独的 shell 中执行命令并使其在后台运行。 您可以使用此方法在后台启动任何 Linux 进程或命令。

将您的 Linux 命令留在后台

能够在后台运行命令使系统管理对管理员来说更有效率。 您可以通过多种方式将任务发送到后台。 Bash 功能,例如 & 性格和 Ctrl + Z 很方便,但系统会在 shell 关闭时终止后台作业。

另一方面,像 诺哈普否认 即使您注销或终止 shell,也请保持您的命令运行。

如果您将程序长时间留在后台,如果编码不当,它们可能会变成僵尸进程。 这些过程会显着降低系统速度。 因此,请确保每隔一段时间识别并杀死僵尸进程。