在使用 RockyLinux 或其他 Linux 系统时,我们常常需要让某个程序在后台持续运行,即使关闭终端或断开 SSH 连接也不中断。这时候,nohup 命令就派上用场了。本文将手把手教你如何使用 nohup 命令 实现“忽略挂起运行”,非常适合 Linux 新手。
什么是 nohup?
nohup是 “no hang up” 的缩写,意思是“忽略挂起信号(SIGHUP)”。当你通过 SSH 登录服务器并运行一个程序后,如果关闭终端或网络断开,系统会向该进程发送 SIGHUP 信号,导致程序被终止。
nohup的作用就是让程序忽略这个信号,从而继续在后台运行。
基本语法
使用
nohup的基本格式如下:
nohup command [args...] [&]
其中:
command:你要运行的命令或脚本
args:可选的参数
&:加上它可以让命令直接在后台运行(推荐使用)
实战示例:在 RockyLinux 中使用 nohup
假设你有一个 Python 脚本
my_script.py,希望它在后台持续运行,即使你退出终端也不停止。
nohup python3 my_script.py &
执行后你会看到类似这样的输出:
[1] 12345nohup: ignoring input and appending nohup.out to output
这表示:
进程 ID 是 12345 标准输出和错误默认会被重定向到当前目录下的nohup.out文件
自定义输出文件
如果你不想使用默认的
nohup.out,可以手动指定日志文件:
nohup python3 my_script.py > my_log.log 2>&1 &
解释:
> my_log.log:将标准输出重定向到
my_log.log
2>&1:将标准错误也重定向到标准输出(即同样写入日志文件)
&:放入后台运行
查看与管理后台进程
启动后,你可以用以下命令查看进程是否还在运行:
ps aux | grep my_script.py
如果需要终止该进程,可以用
kill命令:
kill 12345
常见问题解答
Q:nohup 和 & 有什么区别?
A:
&只是把任务放到后台,但关闭终端仍会终止进程;而
nohup能忽略挂起信号,两者结合使用效果最佳。
Q:为什么 nohup.out 文件越来越大?
A:因为程序持续输出日志。建议定期清理或使用日志轮转工具(如 logrotate),或在启动时重定向到 /dev/null(如果不需要日志):
nohup python3 my_script.py > /dev/null 2>&1 &
总结
通过本文,你应该已经掌握了在 RockyLinux 系统中使用
nohup命令实现“忽略挂起运行”的方法。无论是运行 Web 服务、数据处理脚本还是定时任务,
nohup都是一个简单而强大的工具。
记住关键词:RockyLinux nohup命令、Linux后台运行命令、忽略挂起运行程序、RockyLinux系统管理。掌握这些技能,让你的 Linux 服务器更高效稳定!
