如何在后台运行 Linux 命令

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

幸运的是,您可以通过一些简单的方法在后台运行 Linux 命令。 本文的其余部分说明了其中一些方法。

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

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

gedit &

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

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

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

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

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

下面 example 在后台运行 Nmap 端口扫描。

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

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

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

您还可以使用系统重定向在 Linux 中运行后台命令。 为了 example,如果你运行下面 命令,您的 shell 将在后台运行它并立即返回终端提示符。

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

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

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

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

gedit &
disown

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

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

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

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

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

将您的 Linux 命令留在后台

能够在后台运行命令使系统管理对管理员来说更有效率。 您可以通过多种方式将您的任务置于后台。 Bash 功能,例如 &Ctrl + Z 很方便,但系统会在 shell 关闭时终止后台作业。 另一方面,像 诺哈普否认 即使您注销或终止 shell,也请保持您的命令运行。

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