news 2026/2/12 9:57:42

nohup、tmux、pm2 全面解析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
nohup、tmux、pm2 全面解析

在服务器上跑服务(Node.js / 前端 SSR / 后端 API / 脚本)时,几乎所有人都会遇到这三个工具:

  • nohup
  • tmux
  • pm2

很多教程只教“怎么用”,却不告诉你:

  • 它们解决的到底是什么问题
  • 适合在哪个阶段用
  • 为什么线上一定不要乱用

这篇文章的目标是:

一次性把 nohup、tmux、pm2 的定位讲清楚,让你以后不再纠结。


一句话先给结论(先记住)

nohup:能跑就行
tmux:我在盯着跑
pm2:我对这个服务负责


一、nohup 是什么?

nohup = no hang up

意思是:

当终端(SSH)断开时,进程不要被挂掉。

本质

  • Shell 提供的一个后台运行机制
  • 不是进程管理器
  • 不具备“守护能力”

nohup 怎么用?

最常见用法:

nohupnode server.js>server.log2>&1&

解释:

  • nohup:忽略终端挂断信号
  • >:重定向日志
  • &:后台运行

nohup 能做什么?

SSH 断线,程序继续跑
简单、无学习成本


nohup 做不了什么?

进程崩溃不会重启
服务器重启服务就没了
没有进程列表
没有日志轮转
无法管理多个服务


nohup 适合用在哪里?

适合

  • 临时脚本
  • 一次性任务
  • 快速验证

不适合

  • Web 服务
  • API
  • 线上长期服务

二、tmux 是什么?

tmux = Terminal Multiplexer(终端复用器)

一句话理解:

tmux 管理的是“终端”,不是“进程”


tmux 的本质

  • 创建一个“不会消失的终端会话”
  • 你只是“attach / detach”这个终端
  • 进程仍然是普通进程

tmux 怎么用?

1️⃣ 新建会话
tmux new -s myServer
2️⃣ 在 tmux 里启动服务
node server.js
3️⃣ 安全退出(服务不停止)
Ctrl + B → D
4️⃣ 再次进入
tmux attach -t myServer

tmux 能做什么?

SSH 断线,服务继续
可随时回到现场看日志
Ctrl + C 可优雅停服务
非常适合调试


tmux 做不了什么?

服务崩溃不会自动重启
服务器重启 tmux 会话消失
没有真正的守护能力


一个很多人踩过的坑

删了代码,服务还能访问

原因是:

  • Node 进程已加载代码到内存
  • Linux 不会因为删文件就杀进程
  • tmux 只是“壳”,不是守护

tmux 适合用在哪里?

适合

  • 开发 / 调试
  • 短期跑服务
  • 需要实时观察日志

不适合

  • 无人值守
  • 真正生产环境

三、pm2 是什么?

pm2 = Node.js 进程守护与管理器

一句话概括:

pm2 解决的是“服务生命周期管理”


pm2 的本质

  • Node.js 专用的进程守护器
  • 类似 Linux 的systemd
  • 面向生产环境设计

pm2 怎么用?

1️⃣ 安装
npminstall-g pm2
2️⃣ 启动服务
pm2 start server.js --name api
3️⃣ 查看状态
pm2 status
4️⃣ 查看日志
pm2 logs api
5️⃣ 开机自启
pm2 save pm2 startup

pm2 能做什么?

进程崩溃自动拉起
服务器重启自动启动
日志管理与轮转
多实例 / 集群模式
零停机重启


pm2 适合用在哪里?

适合

  • Web 服务
  • API
  • 前端 SSR
  • 线上生产环境

不适合

  • 一次性脚本
  • 非 Node 服务(需其他工具)

四、nohup / tmux / pm2 核心差异对比

能力nohuptmuxpm2
SSH 断线不影响
可回到运行界面
实时日志
自动重启
开机自启
日志轮转
进程管理
生产可用

五、放在真实架构里怎么选?

假设你的架构是:

Cloudflare → Nginx → Node :3000

合理选择是:

  • 开发 / 调试阶段:tmux
  • 短期验证:tmux(勉强)
  • 长期运行 / 生产:pm2

不推荐:

  • Cloudflare + Nginx + nohup
  • 长期线上服务只用 tmux

有错误或不同理解,欢迎指出与讨论 👍

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/7 2:48:05

LobeChat能否集成TTS语音合成?语音输出实现路径

LobeChat能否集成TTS语音合成?语音输出实现路径 在智能对话系统逐渐从“能说会写”迈向“有声有色”的今天,用户对交互体验的期待早已超越了纯文本的边界。尤其是在车载导航、老年陪伴、无障碍访问等场景中,“听懂AI的回答”比“看到AI的回答…

作者头像 李华
网站建设 2026/2/4 12:49:57

Dify平台在教育领域AI助教系统中的应用设想

Dify平台在教育领域AI助教系统中的应用设想 如今,越来越多的学生在课后提问:“这道题老师讲过,但我还是不会。”而教师也常面临“同一个问题被反复问十几次”的困境。这种信息不对称与教学资源有限的矛盾,在大班制教育中尤为突出…

作者头像 李华
网站建设 2026/2/7 3:23:38

生物信息分析高手私藏代码(R语言代谢组完整流程大公开)

第一章:R语言代谢组学分析概述R语言作为统计计算与数据可视化的强大工具,在生物信息学领域尤其是代谢组学分析中发挥着核心作用。其丰富的扩展包生态系统支持从原始数据预处理到多元统计建模、通路富集分析及高质量图形输出的全流程操作,极大…

作者头像 李华
网站建设 2026/2/8 3:11:09

平台与独立站双轨并行:跨境电商多元化渠道布局与风险对冲策略

在跨境电商 “渠道依赖风险加剧、流量成本高企” 的当下,“单靠平台打天下” 或 “孤注一掷做独立站” 的模式均难以为继。平台与独立站双轨并行,既是 “快速起量” 与 “长期建牌” 的平衡,更是 “分散风险” 与 “提升抗周期能力” 的核心解…

作者头像 李华
网站建设 2026/2/7 4:09:24

为什么你的回归分析总出错?:临床数据中因果推断的R语言正解

第一章:为什么你的回归分析总出错?:临床数据中因果推断的R语言正解 在临床研究中,回归分析常被用于探索变量之间的关系,但许多分析结果却因混淆偏倚、模型误设或忽略因果结构而产生误导。关键问题在于:传统…

作者头像 李华
网站建设 2026/2/4 23:34:24

构建可扩展量子模拟器的R语言秘籍(仅限高级开发者)

第一章:多qubit量子模拟的R语言架构设计 在构建多qubit量子系统模拟器时,R语言凭借其强大的矩阵运算能力和可扩展的函数式编程范式,成为实现量子态演化与测量的有效工具。设计一个模块化的架构,能够清晰分离量子态初始化、门操作应…

作者头像 李华