在使用 Ubuntu 或其他 Linux 系统时,我们经常需要让某个程序在关闭终端后依然继续运行。这时候,nohup 命令就派上用场了。本文将手把手教你如何使用 Ubuntu nohup命令 来实现忽略挂起运行,即使关闭 SSH 连接或终端窗口,程序也能持续在后台运行。
什么是 nohup?
nohup 是 “no hang up” 的缩写,意思是“不挂起”。它可以让程序忽略 SIGHUP 信号(即终端断开连接时发送的挂起信号),从而在用户退出终端后继续运行。
基本语法
使用 nohup 的基本命令格式如下:
nohup COMMAND [ARGS] & 假设你有一个名为 执行以下命令: nohup python3 my_script.py > output.log 2>&1 & 命令解释: 运行 # 查看所有包含 my_script 的进程ps aux | grep my_script.py# 根据 PID 终止进程(假设 PID 是 12345)kill 12345# 强制终止进程kill -9 12345 Q:为什么 nohup 默认生成 nohup.out 文件?COMMAND:你要运行的程序或脚本 ARGS:可选参数 &:表示将任务放到后台运行 实战示例:使用 nohup 运行 Python 脚本
my_script.py 的 Python 脚本,你想让它在后台持续运行,即使你关闭了终端也不受影响。nohup python3 my_script.py:使用 nohup 运行脚本 > output.log:将标准输出重定向到 output.log
文件 2>&1:将错误输出也重定向到标准输出(即同样写入 output.log
) &:放入后台运行 查看和管理后台任务
nohup 后,系统会返回一个进程 ID(PID)。你可以使用以下命令查看和管理这些后台任务:常见问题解答
A:如果你没有指定输出文件,nohup
会自动将输出写入当前目录下的 nohup.out
文件。
Q:nohup 和 & 有什么区别?
A:
&只是把任务放到后台运行,但终端关闭后任务仍会被终止;而
nohup能让任务忽略挂起信号,配合
&才能真正实现“关闭终端后继续运行”。
总结
通过本文,你应该已经掌握了如何使用 Ubuntu nohup命令 来实现Linux后台运行程序,并理解了如何配置输出日志、查看和管理 Ubuntu后台任务。无论你是部署 Web 服务、运行数据处理脚本,还是执行长时间任务,
nohup都是一个非常实用的工具。
记住:合理使用
nohup+ 重定向 +
&,就能轻松实现“断开连接也不怕”的稳定后台运行!
