如何在 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 进程或命令。

相关推荐
2501_9063143223 分钟前
MCP-RAG 服务器:完整设置和使用指南
运维·服务器
QQ_43766431434 分钟前
Linux下可执行程序的生成和运行详解(编译链接汇编图解)
linux·运维·c语言·汇编·caffe
IP管家1 小时前
物联网设备远程管理:基于代理IP的安全固件更新通道方案
服务器·网络·物联网·网络协议·tcp/ip·安全·ip
搬码临时工1 小时前
远程连接电脑的方法?异地远程桌面连接和三方软件实现
运维·服务器·网络·物联网·电脑·远程工作
窦再兴1 小时前
来一个复古的技术FTP
linux·运维·服务器
梦在深巷、1 小时前
nginx配置之负载均衡
运维·nginx·负载均衡
陌路物是人非1 小时前
uniapp取消浏览自动填充
java·服务器·uni-app
xiaobin889991 小时前
【2025最新版】VMware虚拟机下载安装教程 保姆级图文详解(附安装包+常用镜像Linux,win11,ubuntu,centos)
linux·其他·ubuntu·centos
小黑_深呼吸2 小时前
Prometheus实战教程:k8s平台-Mysql监控案例
运维·学习·kubernetes·prometheus
ALex_zry2 小时前
Ubuntu 20.04 C++开发环境搭建指南(2025版)
linux·c++·ubuntu