news 2026/6/15 17:53:27

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/6/12 12:05:46

LobeChat能否预测用户行为?数据洞察新视角

LobeChat:打开用户行为洞察之门的AI交互平台 在AI助手几乎无处不在的今天,我们早已习惯了向Siri提问天气、让Copilot生成代码。但你有没有想过——这些对话背后,系统是否真的“理解”你在想什么?或者说,它能不能预判你…

作者头像 李华
网站建设 2026/6/14 2:29:06

【私有化Dify SSL配置终极指南】:手把手教你实现安全通信与证书部署

第一章:私有化 Dify SSL 配置概述在企业级部署 Dify 时,启用 SSL 加密是保障数据传输安全的关键步骤。私有化部署环境中,通常需要通过自定义域名与受信证书实现 HTTPS 访问,以满足内部合规性与外部访问的安全要求。配置 SSL 不仅能…

作者头像 李华
网站建设 2026/6/14 22:36:42

LobeChat能否用于生成SEO标题?搜索引擎优化利器

LobeChat能否用于生成SEO标题?搜索引擎优化利器 在内容为王的时代,一个好标题的价值不言而喻——它不仅是用户点击的第一动因,更是搜索引擎判定内容相关性的关键信号。然而,面对每天需要产出多篇文章的运营团队,人工构…

作者头像 李华
网站建设 2026/6/14 23:32:42

OpenAI gpt-oss-20b发布:部署与优化全指南

OpenAI gpt-oss-20b部署与优化实战指南 你有没有遇到过这样的困境:想用大模型做本地推理,却发现动辄上百GB显存需求根本无法落地?或者企业希望私有化部署AI能力,却被闭源模型的授权限制卡住脖子?就在最近,O…

作者头像 李华
网站建设 2026/6/14 5:37:36

适当过滤Window event log 输入Splunk

1: 如果window server 比较多的话,那么eventlog 是会很多的,那么可以根据event code 来过滤,具体的设置: 先去DS (deployment server 上去查到这个index 的inputs.conf 文件,然后 index=abc EventCode IN (4658,4656,4690) | timechart span=1m count by EventCode 可以…

作者头像 李华
网站建设 2026/6/12 12:52:01

【企业级数据治理新范式】:基于混合检索的Dify数据源管理实战手册

第一章:企业级数据治理的演进与挑战随着数字化转型的深入,企业级数据治理已从传统的数据管理演变为支撑业务决策、合规运营和智能化创新的核心战略。早期的数据治理主要聚焦于数据质量与元数据管理,而如今则需应对多源异构数据、实时处理需求…

作者头像 李华