[程序运行/Java/Linux] Linux常用命令之【nohup】
1 nohup 命令
它是做什么的? no hang up
nohup(no hang up)= 忽略“挂断”信号(SIGHUP)。- 核心作用:让程序在终端关闭 / 退出登录后仍然继续运行,不会因为【会话断开】而被系统杀掉。
nohup 目标命令 > 日志 2>&1 &—— "后台跑,日志存文件,关了终端也不死。"
- 原理:
- 正常情况下,当你【关闭终端】或【退出 SSH 会话】,系统会向【该会话下运行的进程】发送
SIGHUP信号,进程默认收到后退出。- 用
nohup启动后,进程忽略这个信号,继续在后台跑。
注意:
nohup只负责"不怕终端关闭",不负责【程序崩溃恢复】,也不负责【开机自启】。要真正常驻后台 + 开机拉起,得配合systemd等工具。
常用方式
1. 基本用法(后台跑 + 日志落盘) | 最常见
nohup java -jar app.jar > app.log 2>&1 &
nohup java -Xms512m -Xmx1024m -cp . MyApp > myapp.out 2>&1 &
> app.log: 【标准输出】写入日志文件2>&1: 【错误输】出也一起写进同一日志&: 放后台,命令立即返回- 如果不写
>,默认输出到nohup.out(在当前目录生成)
2. 指定日志追加,保留历史
nohup java -jar app.jar >> app.log 2>&1 &
>> 追加而不是 > 覆盖,适合【反复启动】、想看【历史日志】。
3. 后台跑,不想留日志
nohup python app.py > /dev/null 2>&1 &
日志直接丢弃(
/dev/null是黑洞)。
4. 赋予更高优先级 / 丢到后端
nohup java -jar app.jar > app.log 2>&1 & disown
disown把任务从 shell 作业表中移除,更彻底地【解绑终端】。
关键细节
| 点 | 说明 |
|---|---|
| nohup.out | 不指定重定向时,默认在当前目录生成 nohup.out,不想要可删除或重定向 |
| 日志文件权限 | 默认 644;【多人场景】可用 umask 或先创建调整 |
| 如何查看还在不在 | ps -ef | grep app.jar 或 jps(Java) |
| 如何停止 | 只能 kill <PID>,nohup 不提供停止能力 |
对比:nohup vs 其他后台方式
| 方式 | 终端关闭后存活 | 说明 |
|---|---|---|
nohup xxx & |
✅ | 最常用,忽略 SIGHUP |
setsid xxx & |
✅ | 新会话运行,更彻底脱离终端 |
( xxx & ) |
✅ | 子 shell 后台运行 |
仅 xxx & |
❌ | 会随终端关闭被杀 |
systemd 服务 |
✅ + 自动重启 | 生产环境最佳方案 |
Y 推荐文献
-
先前博文中涉及 nohup 命令的:
- [Java] SpringBoot部署到云服务器 - 博客园/千千寰宇
- [SpringBoot/JavaEE] SpringBoot启动与停用的4种方式 - 博客园/千千寰宇 【推荐】
- [Linux/Windows] 后台挂载/卸载程序 - 博客园/千千寰宇 【推荐】
- [Java EE] SpringBoot/Tomcat之启动时报"Error: Could not find or load main class CLASS xxxx"、"no main manifest attribute"异常 - 博客园/千千寰宇 【推荐】
- [独立建站] Halo:开源建站框架 - 博客园/千千寰宇
nohup npm run dev &- [JVM/APM] 应用诊断工具之VisualVM - 博客园/千千寰宇
nohup java -jar xxx.jar &
X 参考文献
本文作者:
千千寰宇
本文链接: https://www.cnblogs.com/johnnyzen
关于博文:评论和私信会在第一时间回复,或直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
日常交流:大数据与软件开发-QQ交流群: 774386015 【入群二维码】参见左下角。您的支持、鼓励是博主技术写作的重要动力!
本文链接: https://www.cnblogs.com/johnnyzen
关于博文:评论和私信会在第一时间回复,或直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
日常交流:大数据与软件开发-QQ交流群: 774386015 【入群二维码】参见左下角。您的支持、鼓励是博主技术写作的重要动力!

浙公网安备 33010602011771号