nohup命令可使进程在终端退出后继续运行,通过忽略SIGHUP信号实现;基本用法为nohup command &,默认输出日志至nohup.out;可通过> output.log 2>&1 &自定义日志路径;无需日志时可重定向至/dev/null;配合ps、grep、kill等命令管理进程,确保任务稳定执行。

在Linux命令行中,nohup 命令用于让进程在退出终端后依然保持运行。它通过忽略挂起信号(SIGHUP)来实现这一点,是远程服务器上长时间任务执行的常用手段。掌握其使用技巧,能有效提升运维效率和任务稳定性。
基本用法与后台运行
最简单的 nohup 用法是配合 & 符号将命令放入后台执行:
nohup command &例如启动一个长时间脚本:
nohup python train.py &执行后,系统会提示输出日志重定向到当前目录下的 nohup.out 文件。即使关闭终端,进程仍继续运行。
自定义输出文件路径
默认输出可能造成混乱,特别是多个任务同时运行时。可以通过重定向标准输出和错误流指定日志文件:
nohup command > output.log 2>&1 &说明:
- > output.log:将标准输出写入指定文件
- 2>&1:将标准错误合并到标准输出
- &:使进程在后台运行
这样便于追踪日志,也方便后续排查问题。
篇文章是针对git版本控制和工作流的总结,如果有些朋友之前还没使用过git,对git的基本概念和命令不是很熟悉,可以从以下基本教程入手: Git是分布式版本控制系统,与SVN类似的集中化版本控制系统相比,集中化版本控制系统虽然能够令多个团队成员一起协作开发,但有时如果中央服务器宕机的话,谁也无法在宕机期间提交更新和协同开发。甚至有时,中央服务器磁盘故障,恰巧又没有做备份或备份没及时,那就可能有丢失数据的风险。感兴趣的朋友可以过来看看
避免输出日志(静默模式)
某些场景下不需要保存输出,比如定时任务或守护进程,可将输出重定向到 /dev/null:
nohup command > /dev/null 2>&1 &这能防止 nohup.out 文件占用磁盘空间,尤其适合自动化脚本。
结合 ps 和 kill 管理进程
nohup 启动的进程不会自动消失,需手动管理。常用命令包括:
- 查看进程:ps aux | grep command
- 结束进程:kill PID(替换为实际进程ID)
也可通过 pgrep 快速查找:
pgrep -f train.py找到PID后即可安全终止任务。
基本上就这些。合理使用 nohup 能确保关键任务持续运行,配合日志管理和进程监控,可大幅提升操作可靠性。









