• 欢迎关注我的微信公众号“ Falost ” 右边扫描关注 --->>

PM2 进程保镖(我认为的啊) 使用介绍

工具 神棍 5972℃ 0评论

主要特性

  1. 内建负载均衡(使用 Node cluster 集群模块)
  2. 后台运行
  3. 0 秒停机重载,我理解大概意思是维护升级的时候不需要停机.
  4. 具有 Ubuntu 和 CentOS 的启动脚本
  5. 停止不稳定的进程(避免无限循环)
  6. 控制台检测
  7. 提供 HTTP API
  8. 远程控制和实时的接口 API ( Nodejs 模块,允许和 PM2 进程管理器交互 )

测试过 Nodejs v0.11/v0.10/v0.8 版本,兼容 CoffeeScript,基于 Linux 和 MacOS。

安装

npm install -g pm2

用法

$ npm install pm2 -g     # 命令行安装 pm2 
$ pm2 start app.js -i 4  # 后台运行pm2,启动4个app.js 
    //可以把'max' 参数传递给 start
    //正确的进程数目依赖于Cpu的核心数目
$ pm2 start app.js --name my-api # 命名进程
$ pm2 list               # 显示所有进程状态
$ pm2 monit              # 监视所有进程
$ pm2 logs               # 显示所有进程日志
$ pm2 stop all           # 停止所有进程
$ pm2 restart all        # 重启所有进程
$ pm2 reload all         # 0 秒停机重载进程 (用于 NETWORKED 进程)
$ pm2 stop 0             # 停止指定的进程
$ pm2 restart 0          # 重启指定的进程
$ pm2 startup            # 产生 init 脚本 保持进程活着
$ pm2 web                # 运行健壮的 computer API endpoint (http://localhost:9615)
$ pm2 delete 0           # 杀死指定的进程
$ pm2 delete all         # 杀死全部进程

运行进程的不同方式

$ pm2 start app.js -i max    # 根据有效CPU数目启动最大进程数目
$ pm2 start app.js -i 3      # 启动3个进程
$ pm2 start app.js -x        #用fork模式启动 app.js 而不是使用 cluster
$ pm2 start app.js -x -- -a 23   # 用fork模式启动 app.js 并且传递参数 (-a 23)
$ pm2 start app.js --name serverone  # 启动一个进程并把它命名为 serverone
$ pm2 stop serverone       # 停止 serverone 进程
$ pm2 start app.json        # 启动进程, 在 app.json里设置选项
$ pm2 start app.js -i max -- -a 23                   #在--之后给 app.js 传递参数
$ pm2 start app.js -i max -e err.log -o out.log  # 启动 并 生成一个配置文件
你也可以执行用其他语言编写的app  ( fork 模式):
$ pm2 start my-bash-script.sh    -x --interpreter bash
$ pm2 start my-python-script.py -x --interpreter python

0 秒停机重载:这项功能允许你重新载入代码而不用失去请求连接。

最后,为了能够开启启动,并保存你的操作,需要执行下面这两个命令。

pm2 save
pm2 startup

转载请注明:Falost的小窝 » PM2 进程保镖(我认为的啊) 使用介绍

如果你觉得这篇文章不错或者对你有帮助,想请我喝一杯咖啡,可以打赏
喜欢 (191)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(2)个小伙伴在吐槽
  1. 来学习!支持下~
    跨境电商运营2021-06-07 03:56
  2. 程序员的难言之隐 :mrgreen:
    程序员的难言之隐2016-09-26 21:09