NodeJS 在生产环境使用 PM2 管理 node 进程

发布于 2021-12-14 12:36:53 字数 3754 浏览 1369 评论 0

pm2 介绍

官网:http://pm2.keymetrics.io/

Advanced, production process manager for Node.js. A Complete feature set for production environment, built with a worldwide community of developers and enterprises

本来应该是叫 pm 的,但因为 pm 已经被国内某个开发者先占用了,只能加个 2,成了 pm2

pm2 安装

pm2 是 npm 模块,安装超级方便。

npm install -g pm2

安装完成之后,使用命令检查一下是否安装完整。

➜ pm2 -v
[PM2] Spawning PM2 daemon
[PM2] PM2 Successfully daemonized
0.15.10

pm2 使用

pm2 使用超级简单,主要有 3 个命令:

启动

➜ pm2 start app.js -n myAwesomeApp
[PM2] Starting app.js in fork_mode (1 instance)
[PM2] Done.
┌──────────────┬────┬──────┬───────┬────────┬─────────┬────────┬─────────────┬──────────┐
│ App name     │ id │ mode │ pid   │ status │ restart │ uptime │ memory      │ watching │
├──────────────┼────┼──────┼───────┼────────┼─────────┼────────┼─────────────┼──────────┤
│ myAwesomeApp │ 0  │ fork │ 21922 │ online │ 0       │ 0s     │ 20.551 MB   │ disabled │
└──────────────┴────┴──────┴───────┴────────┴─────────┴────────┴─────────────┴──────────┘
 Use `pm2 show <id|name>` to get more details about an app
  • start 表示启动一个 node 进程
  • -n 参数用来给这个进程命名

启动之后,显示了一个表格:

  • App name:就是 -n 命名的名称
  • id:就是分配的 id 序号
  • mode:启动模式,默认是 fork,也可以是 cluster
  • pid:进程的 pid
  • status:当前进程的状态,如果进程崩溃到无法启动,那么值就是 offline
  • restart:重启次数
  • uptime:启动之后的在线时间

重启

➜  pm2 restart 0
[PM2] restartProcessId process id 0
┌──────────────┬────┬──────┬───────┬────────┬─────────┬────────┬─────────────┬──────────┐
│ App name     │ id │ mode │ pid   │ status │ restart │ uptime │ memory      │ watching │
├──────────────┼────┼──────┼───────┼────────┼─────────┼────────┼─────────────┼──────────┤
│ myAwesomeApp │ 0  │ fork │ 21942 │ online │ 1       │ 0s     │ 16.980 MB   │ disabled │
└──────────────┴────┴──────┴───────┴────────┴─────────┴────────┴─────────────┴──────────┘
 Use `pm2 show <id|name>` to get more details about an app
  • restart 表示重启某个 node 进程
  • 0 表示 pm2 分配给 node 进程的 ID

重启之后,restart 次数会加 1。当然了,如果你的 node 进程异常崩溃了,那么 pm2 也会自动重启该进程,restart 次数也会加 1。

停止

➜  pm2 stop 0
[PM2] Stopping 0
[PM2] stopProcessId process id 0
┌──────────────┬────┬──────┬─────┬─────────┬─────────┬────────┬────────┬──────────┐
│ App name     │ id │ mode │ pid │ status  │ restart │ uptime │ memory │ watching │
├──────────────┼────┼──────┼─────┼─────────┼─────────┼────────┼────────┼──────────┤
│ myAwesomeApp │ 0  │ fork │ 0   │ stopped │ 1       │ 0      │ 0 B    │ disabled │
└──────────────┴────┴──────┴─────┴─────────┴─────────┴────────┴────────┴──────────┘
 Use `pm2 show <id|name>` to get more details about an app
  • stop 表示停止某个 node 进程
  • 0 表示 pm2 分配给 node 进程的 ID

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

回眸一笑

暂无简介

0 文章
0 评论
994 人气
更多

推荐作者

6118422078

文章 0 评论 0

Bonjour°[大白

文章 0 评论 0

別甾虛僞

文章 0 评论 0

qq_FynBW0

文章 0 评论 0

浅笑依然

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文