毫米波雷达人体感知优化:从信号处理到多目标跟踪的工程实践
2026/5/16 17:11:47
在服务器上跑服务(Node.js / 前端 SSR / 后端 API / 脚本)时,几乎所有人都会遇到这三个工具:
很多教程只教“怎么用”,却不告诉你:
这篇文章的目标是:
一次性把 nohup、tmux、pm2 的定位讲清楚,让你以后不再纠结。
nohup:能跑就行
tmux:我在盯着跑
pm2:我对这个服务负责
nohup = no hang up
意思是:
当终端(SSH)断开时,进程不要被挂掉。
最常见用法:
nohupnode server.js>server.log2>&1&解释:
nohup:忽略终端挂断信号>:重定向日志&:后台运行SSH 断线,程序继续跑
简单、无学习成本
进程崩溃不会重启
服务器重启服务就没了
没有进程列表
没有日志轮转
无法管理多个服务
适合
不适合
tmux = Terminal Multiplexer(终端复用器)
一句话理解:
tmux 管理的是“终端”,不是“进程”
tmux new -s myServernode server.jsCtrl + B → Dtmux attach -t myServerSSH 断线,服务继续
可随时回到现场看日志
Ctrl + C 可优雅停服务
非常适合调试
服务崩溃不会自动重启
服务器重启 tmux 会话消失
没有真正的守护能力
删了代码,服务还能访问
原因是:
适合
不适合
pm2 = Node.js 进程守护与管理器
一句话概括:
pm2 解决的是“服务生命周期管理”
systemdnpminstall-g pm2pm2 start server.js --name apipm2 statuspm2 logs apipm2 save pm2 startup进程崩溃自动拉起
服务器重启自动启动
日志管理与轮转
多实例 / 集群模式
零停机重启
适合
不适合
| 能力 | nohup | tmux | pm2 |
|---|---|---|---|
| SSH 断线不影响 | ✅ | ✅ | ✅ |
| 可回到运行界面 | ❌ | ✅ | ❌ |
| 实时日志 | ❌ | ✅ | ✅ |
| 自动重启 | ❌ | ❌ | ✅ |
| 开机自启 | ❌ | ❌ | ✅ |
| 日志轮转 | ❌ | ❌ | ✅ |
| 进程管理 | ❌ | ❌ | ✅ |
| 生产可用 | ❌ | ❌ | ✅ |
假设你的架构是:
Cloudflare → Nginx → Node :3000不推荐:
有错误或不同理解,欢迎指出与讨论 👍