【Node基础学习教程】pm2,管理node进程

pm2 node进程管理工具

什么是pm2呀

n 和 nvm 是node版本的管理工具

pm2 是node的进程管理工具,可以做很多node应用管理的繁琐任务,包括但不限于自动重启、守护进程、负载均衡、性能监控等

安装

node依赖安装一般比较简单

npm install -g pm2

如何使用

启动

启动命令: pm2 start main.js –watch

其中 main.js 是入口js文件

1
-i --instances 代表启动进程实例数,一般指负载均衡


1
pm2 start main.js --watch -i 2

停止

pm2 stop id|name

根据应用名或者id停止pm2管理的应用,通过pm2 list查看所有应用

停止所有应用: pm2 stop all

1
2
3
4
5
6
7
8
[me@VM_0_8_centos node]# pm2 list
┌──────────┬────┬─────────┬──────┬─────┬─────────┬─────────┬────────┬─────┬────────┬──────┬──────────┐
│ App name │ id │ version │ mode │ pid │ status │ restart │ uptime │ cpu │ mem │ user │ watching │
├──────────┼────┼─────────┼──────┼─────┼─────────┼─────────┼────────┼─────┼────────┼──────┼──────────┤
│ main │ 1 │ 1.0.0 │ fork │ 0 │ errored │ 30 │ 0 │ 0% │ 0 B │ me │ enabled │
│ yarn │ 0 │ N/A │ fork │ 0 │ stopped │ 2 │ 0 │ 0% │ 0 B │ me │ disabled │
└──────────┴────┴─────────┴──────┴─────┴─────────┴─────────┴────────┴─────┴────────┴──────┴──────────┘
Use `pm2 show <id|name>` to get more details about an app

重启

pm2 restart id|name

id和name同上意思

查看日志

pm2 logs

1
2
3
4
5
6
[me@VM_0_8_centos node]# pm2 logs
[TAILING] Tailing last 15 lines for [all] processes (change the value with --lines option)
/me/.pm2/pm2.log last 15 lines:
PM2 | 2019-10-07T16:24:05: PM2 log: App [main:1] online
PM2 | 2019-10-07T16:24:05: PM2 log: App [main:1] exited with code [1] via signal [SIGINT]
...

设置开机自启动

pm2 startup

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[root@VM_0_8_centos node]# pm2 startup
[PM2] Init System found: systemd
Platform systemd
Template
[Unit]
...

[Install]
WantedBy=multi-user.target

...

[PM2] [v] Command successfully executed.
+---------------------------------------+
[PM2] Freeze a process list on reboot via:
$ pm2 save

[PM2] Remove init script via:
$ pm2 unstartup systemd

其中部分较长输出日志,省略

设置node命令参数

pm2 start main.js –node-args=”–experimental-modules”

结合nginx反向代理

nginx配置反向代理到 node端口即可

坚持原创技术分享,您的支持将鼓励我继续创作!