如何在 Linux 中后台运行进程?

一、后台进程

在后台运行进程是 Linux 系统中的常见要求。在后台运行进程允许您在进程独立运行时继续使用终端或执行其他命令。这对于长时间运行的任务或当您想要同时执行多个命令时特别有用。

在深入研究各种方法之前,让我们先了解一下什么是后台进程。在 Linux 中,后台进程是指独立于终端运行的进程。执行命令时,它通常在前台运行,这意味着它会占用终端直到完成。另一方面,在后台运行进程允许您执行其他命令,而进程则继续默默运行。

二、如何在后台运行 Linux 命令

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

运行 Linux 后台命令的最简单方法是在命令后添加一个"与"符号( & )。例如,如果您从终端启动 gedit 文本编辑器,则在关闭编辑器之前无法使用 shell。但是,当您在命令中添加额外的&时,它会告诉 Bash 在后台运行该命令,以便您立即使用 shell。

复制代码
gedit &

2. 使用 bg 将正在运行的命令发送到后台

有时,您运行命令后才发现它需要很长时间才能完成。您可以通过按下Ctrl + Z 键,然后使用bg 命令,轻松地将此类命令发送到后台。按下Ctrl + Z 可停止正在运行的进程,而bg可将其发送到后台。

您可以在终端中输入jobs来查看所有后台任务的列表。使用fg命令将后台进程调到前台。

如果后台有多个作业正在运行,您可以输入fg后跟%n,其中n是作业 ID。例如,要将后台作业2移到前台,命令如下:

复制代码
fg %2

要终止后台作业,请在 kill 命令后使用%和作业 ID。

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

Linux 中的nohup命令允许管理员运行不受 HUP 或Hang Up信号影响的终端命令。您可以使用 nohup 在 Linux 上轻松地在后台运行命令。

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

复制代码
nohup sudo nmap -sS --top-ports=15 192.168.1.1/24

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

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

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

复制代码
ping -c5 8.8.8.8 > output.log 2>&1 &

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

5. 使用 disown

disown命令可让您轻松地在后台运行进程。首先,您需要使用**&运算符** 任务发送到后台。然后,输入disown以将其从 shell 中分离。

复制代码
gedit & disown

disown 的一个主要优点是,与 nohup 一样,当您关闭 shell 或注销时,系统不会终止您的任务。

6. 使用 tmux

tmux 是一款功能强大的多路复用器,可让您在单个窗口中运行多个终端会话。对于不熟悉 Linux 的人来说,学习如何使用和配置 tmux是一个绝佳的选择。tmux 让在 Linux 中运行后台命令变得轻而易举。

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

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

相关推荐
Empty_77710 小时前
K8S-Job & Cronjob
java·linux·docker·容器·kubernetes
开***能10 小时前
ASI转Profinet网关助力包装全产业自动化
运维·自动化
Molesidy11 小时前
【Linux】【Imx6ull Pro】基于Imx6ull Pro开发板的Linux-C-C++编程记录
linux·嵌入式·嵌入式linux应用层
北京盛世宏博11 小时前
边缘计算赋能!机房机柜微环境温湿度快速响应控制方案
运维·服务器·网络
3DVisionary11 小时前
高精度三维扫描+自动化,新拓三维打造中小型工业零部件数字化检测新方案
运维·自动化·蓝光三维扫描·dic技术·复杂零部件的批量检测·模型试验·自动化和数字化测量
AI云原生11 小时前
在 openEuler 上使用 x86_64 环境编译 ARM64 应用的完整实践
java·运维·开发语言·jvm·开源·开源软件·开源协议
赖small强11 小时前
【Linux 内存管理】Linux系统中CPU访问内存的完整机制深度解析
linux·缓存·tlb·内存访问·page table
油丶酸萝卜别吃12 小时前
堡垒机的集中管控具体体现在哪些方面?
服务器
真正的醒悟12 小时前
图解网络22
服务器·网络·php
张人大 Renda Zhang12 小时前
2025 年版笔记:Java 开发如何用 AI 升级 CI/CD 和运维?
java·运维·ci/cd·ai·云原生·架构·自动化