2026/1/7 22:45:55
网站建设
项目流程
咸阳市住房和城乡建设规划局网站,河南建设人才信息网,定制 网站,wordpress+信息查询在服务器上跑服务#xff08;Node.js / 前端 SSR / 后端 API / 脚本#xff09;时#xff0c;几乎所有人都会遇到这三个工具#xff1a;
nohuptmuxpm2
很多教程只教“怎么用”#xff0c;却不告诉你#xff1a;
它们 解决的到底是什么问题适合在哪个阶段用为什么线上一定…在服务器上跑服务Node.js / 前端 SSR / 后端 API / 脚本时几乎所有人都会遇到这三个工具nohuptmuxpm2很多教程只教“怎么用”却不告诉你它们解决的到底是什么问题适合在哪个阶段用为什么线上一定不要乱用这篇文章的目标是一次性把 nohup、tmux、pm2 的定位讲清楚让你以后不再纠结。一句话先给结论先记住nohup能跑就行tmux我在盯着跑pm2我对这个服务负责一、nohup 是什么nohup no hang up意思是当终端SSH断开时进程不要被挂掉。本质Shell 提供的一个后台运行机制不是进程管理器不具备“守护能力”nohup 怎么用最常见用法nohupnode server.jsserver.log21解释nohup忽略终端挂断信号重定向日志后台运行nohup 能做什么SSH 断线程序继续跑简单、无学习成本nohup 做不了什么进程崩溃不会重启服务器重启服务就没了没有进程列表没有日志轮转无法管理多个服务nohup 适合用在哪里适合临时脚本一次性任务快速验证不适合Web 服务API线上长期服务二、tmux 是什么tmux Terminal Multiplexer终端复用器一句话理解tmux 管理的是“终端”不是“进程”tmux 的本质创建一个“不会消失的终端会话”你只是“attach / detach”这个终端进程仍然是普通进程tmux 怎么用1️⃣ 新建会话tmux new -s myServer2️⃣ 在 tmux 里启动服务node server.js3️⃣ 安全退出服务不停止Ctrl B → D4️⃣ 再次进入tmux attach -t myServertmux 能做什么SSH 断线服务继续可随时回到现场看日志Ctrl C 可优雅停服务非常适合调试tmux 做不了什么服务崩溃不会自动重启服务器重启 tmux 会话消失没有真正的守护能力一个很多人踩过的坑删了代码服务还能访问原因是Node 进程已加载代码到内存Linux 不会因为删文件就杀进程tmux 只是“壳”不是守护tmux 适合用在哪里适合开发 / 调试短期跑服务需要实时观察日志不适合无人值守真正生产环境三、pm2 是什么pm2 Node.js 进程守护与管理器一句话概括pm2 解决的是“服务生命周期管理”pm2 的本质Node.js 专用的进程守护器类似 Linux 的systemd面向生产环境设计pm2 怎么用1️⃣ 安装npminstall-g pm22️⃣ 启动服务pm2 start server.js --name api3️⃣ 查看状态pm2 status4️⃣ 查看日志pm2 logs api5️⃣ 开机自启pm2 save pm2 startuppm2 能做什么进程崩溃自动拉起服务器重启自动启动日志管理与轮转多实例 / 集群模式零停机重启pm2 适合用在哪里适合Web 服务API前端 SSR线上生产环境不适合一次性脚本非 Node 服务需其他工具四、nohup / tmux / pm2 核心差异对比能力nohuptmuxpm2SSH 断线不影响✅✅✅可回到运行界面❌✅❌实时日志❌✅✅自动重启❌❌✅开机自启❌❌✅日志轮转❌❌✅进程管理❌❌✅生产可用❌❌✅五、放在真实架构里怎么选假设你的架构是Cloudflare → Nginx → Node :3000合理选择是开发 / 调试阶段tmux短期验证tmux勉强长期运行 / 生产pm2不推荐Cloudflare Nginx nohup长期线上服务只用 tmux有错误或不同理解欢迎指出与讨论