如何在后台运行Linux命令
Linux 命令是使用终端与系统交互的好方法。 但是,有时可能需要一段时间才能完成手头的任务。 这迫使用户要么等待相当长的时间来完成该过程,要么完全生成一个新的 shell。
幸运的是,您可以通过一些简单的方法在后台运行 Linux 命令。
推荐:如何在Linux上安装完整版Minecraft
1. 在你的命令之后添加一个 & 符号
运行 Linux 后台命令的最简单方法是添加 与号 (&) 命令后的符号。 例如,如果从终端启动 gedit 文本编辑器,则在关闭编辑器之前无法使用 shell。 但是,当您添加额外的 & 根据您的命令,您将能够立即使用 shell。
gedit &
2.使用bg发送运行命令到后台
有时您运行一个命令只是发现它需要更长的时间才能完成。 您可以通过点击 Ctrl + Z 键,然后使用 bg 命令。 打 Ctrl + Z 停止正在运行的进程,并且 bg 把它带到后台。
您可以通过键入查看所有后台任务的列表 工作 在终端。 使用 fg 命令返回到正在运行的任务。
3. 使用 nohup 将命令发送到后台
这 诺哈普 Linux 中的命令允许管理员运行不受 HUP 或 挂断 信号。 您可以使用 nohup 在 Linux 后台轻松运行命令。
下面的示例在后台运行一个简单的 Nmap 端口扫描。
nohup sudo nmap -sS
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 一样,当您关闭 shell 或注销时,系统不会终止您的任务。
6. 使用 tmux 在后台运行 Linux 命令
tmux 是一个强大的多路复用器,允许您在单个窗口中运行多个终端会话。 学习如何在 Linux 上使用和配置 tmux 对于不熟悉它的人来说是一个很好的选择。 tmux 使在 Linux 中运行后台命令毫不费力。
tmux new -d 'ping -c 10 8.8.8.8 > output.log'
当你运行上述 多路复用器 命令,它将执行 ping 在单独的 shell 中执行命令并使其在后台运行。 您可以使用此方法在后台启动任何 Linux 进程或命令。
将您的 Linux 命令留在后台
能够在后台运行命令使系统管理对管理员来说更有效率。 您可以通过多种方式将任务发送到后台。 Bash 功能,例如 & 性格和 Ctrl + Z 很方便,但系统会在 shell 关闭时终止后台作业。
另一方面,像 nohup and disown 即使您注销或终止 shell,也请保持您的命令运行。
如果您将程序长时间留在后台,如果编码不当,它们可能会变成僵尸进程。 这些过程会显着降低系统速度。 因此,请确保每隔一段时间识别并杀死僵尸进程。