Linux 的 nohup 命令

张开发
2026/4/11 13:09:32 15 分钟阅读

分享文章

Linux 的 nohup 命令
Linux 的nohup命令是一个用于在用户注销后仍保持程序运行的实用工具。下面是关于该命令的详细说明1. 基本功能nohupno hang up 的缩写允许命令或脚本在用户退出终端会话后继续运行不受 SIGHUP挂起信号的影响。默认情况下当用户退出终端时系统会向所有相关进程发送 SIGHUP 信号导致它们终止。2. 基本语法nohupcommand[arguments]其中command是要执行的命令或脚本[arguments]是可选的命令参数符号表示在后台运行3. 输出重定向默认情况下nohup会将输出重定向到当前目录下的nohup.out文件。可以自定义输出文件nohupcommandoutput.log21这会将标准输出和标准错误都重定向到output.log文件。4. 常见使用场景运行长时间任务如数据处理、备份等远程服务器上启动服务执行耗时脚本时避免因网络断开而中断5. 实用示例启动 Python 脚本并在后台运行nohuppython3 long_running_script.pyscript.log216. 注意事项使用nohup时建议配合将进程放到后台要查看nohup启动的进程可以使用ps aux | grep command或jobs -l终止nohup进程需要使用kill命令某些程序可能捕获并处理 SIGHUP 信号这种情况下nohup可能不会生效7. 相关命令disown从 shell 的作业列表中移除进程screen/tmux终端复用器提供更完整的会话保持功能setsid在新会话中运行程序8. 最佳实践对于需要长期运行的重要进程建议结合使用nohup和日志轮转工具如logrotate并考虑使用专门的进程管理工具如systemd或supervisor来管理。通过合理使用nohup可以确保关键任务在用户注销后仍能持续运行特别适合服务器管理和自动化任务场景。

更多文章