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




所有评论(0)