pm2常用的命令用法介绍

pm2 是一个带有负载均衡功能的Node应用的进程管理器.当你要把你的独立代码利用全部的服务器上的所有CPU,并保证进程永远都活着,0秒的重载, PM2是完美的,下面我们来看pm2常用的命令用法介绍吧。



PM2 (github上的源码)是开源的基于Nodejs的进程管理器,包括守护进程,监控,日志的一整套完整的功能,基本是Nodejs应用程序不二的守护进程选择,事实上它并不仅仅可以启动Nodejs的程序,只要是一般的脚本的程序它同样可以胜任。





以下是pm2常用的命令行



$ pm2 start app.js              # 启动app.js应用程序



$ pm2 start app.js -i 4         #
cluster mode 模式启动4个app.js的应用实例     # 4个应用程序会自动进行负载均衡



$ pm2 start app.js --name=“api” # 启动应用程序并命名为 “api”



$ pm2 start app.js --watch
     # 当文件变化时自动重启应用



$ pm2 start script.sh           #
启动 bash 脚本





$ pm2 list                      #
列表 PM2 启动的所有的应用程序



$ pm2 monit                     # 显示每个应用程序的CPU和内存占用情况



$ pm2 show [app-name]           #
显示应用程序的所有信息





$ pm2 logs                      #
显示所有应用程序的日志



$ pm2 logs [app-name]           # 显示指定应用程序的日志



$ pm2 flush





$ pm2 stop all                  # 停止所有的应用程序



$ pm2 stop 0                    #
停止 id为 0的指定应用程序



$ pm2 restart all               # 重启所有应用



$ pm2 reload all                #
重启 cluster mode下的所有应用



$ pm2 gracefulReload all        # Graceful reload all apps in cluster mode



$ pm2 delete all                # 关闭并删除所有应用



$ pm2 delete 0                  # 删除指定应用 id 0



$ pm2 scale api 10              #
把名字叫api的应用扩展到10个实例



$ pm2 reset [app-name]          # 重置重启数量





$ pm2 startup                   #
创建开机自启动命令



$ pm2 save                      #
保存当前应用列表



$ pm2 resurrect                 #
重新加载保存的应用列表



$ pm2 update                    # Save processes, kill PM2 and restore processes



$ pm2 generate                  # Generate a sample json configuration file





$ pm2 deploy app.json prod setup    # Setup “prod” remote server



$ pm2 deploy app.json prod          # Update “prod” remote server



$ pm2 deploy app.json prod revert 2 # Revert “prod” remote server by 2





$ pm2 module:generate [name]    # Generate sample module with name [name]



$ pm2 install pm2-logrotate     # Install module (here a log rotation system)



$ pm2 uninstall pm2-logrotate   # Uninstall module



$ pm2 publish                   # Increment version, git push and npm publish



简介

PM2是node进程管理工具,可以利用它来简化很多node应用管理的繁琐任务,如性能监控、自动重启、负载均衡等,而且使用非常简单。

下面就对PM2进行入门性的介绍,基本涵盖了PM2的常用的功能和配置。

安装

全局安装,简直不能更简单。

npm install -g pm2

目录介绍

pm2安装好后,会自动创建下面目录。看文件名基本就知道干嘛的了,就不翻译了。

  • $HOME/.pm2 will contain all PM2 related files
  • $HOME/.pm2/logs will contain all applications logs
  • $HOME/.pm2/pids will contain all applications pids
  • $HOME/.pm2/pm2.log PM2 logs
  • $HOME/.pm2/pm2.pid PM2 pid
  • $HOME/.pm2/rpc.sock Socket file for remote commands
  • $HOME/.pm2/pub.sock Socket file for publishable events
  • $HOME/.pm2/conf.js PM2 Configuration

入门教程

挑我们最爱的express应用来举例。一般我们都是通过npm start启动应用,其实就是调用node ./bin/www。那么,换成pm2就是

注意,这里用了--watch参数,意味着当你的express应用代码发生变化时,pm2会帮你重启服务,多贴心。

pm2 start ./bin/www --watch
 
 

入门太简单了,没什么好讲的。直接上官方文档:http://pm2.keymetrics.io/docs/usage/quick-start

常用命令

启动

参数说明:

  • --watch:监听应用目录的变化,一旦发生变化,自动重启。如果要精确监听、不见听的目录,最好通过配置文件。
  • -i --instances:启用多少个实例,可用于负载均衡。如果-i 0或者-i max,则根据当前机器核数确定实例数目。
  • --ignore-watch:排除监听的目录/文件,可以是特定的文件名,也可以是正则。比如--ignore-watch="test node_modules "some scripts""
  • -n --name:应用的名称。查看应用信息的时候可以用到。
  • -o --output <path>:标准输出日志文件的路径。
  • -e --error <path>:错误输出日志文件的路径。
  • --interpreter <interpreter>:the interpreter pm2 should use for executing app (bash, python...)。比如你用的coffee script来编写应用。

完整命令行参数列表:地址

pm2 start app.js --watch -i 2
 
 

重启

pm2 restart app.js
 
 

停止

停止特定的应用。可以先通过pm2 list获取应用的名字(--name指定的)或者进程id。

pm2 stop app_name|app_id
 
 

如果要停止所有应用,可以

pm2 stop all
 
 

删除

类似pm2 stop,如下

pm2 stop app_name|app_id pm2 stop all
 
 

查看进程状态

pm2 list
 
 

查看某个进程的信息


 
 
  1. [root @iZ94wb7tioqZ pids] # pm2 describe 0 Describing process with id 0 - name oc-server
  2. ┌───────────────────┬──────────────────────────────────────────────────────────────┐
  3. │ status │ online │
  4. │ name │ oc-server │
  5. │ id │ 0
  6. │ path │ / data/file/qiquan/over_the_counter/server/bin/www │
  7. │ args │ │
  8. exec cwd │ / data/file/qiquan/over_the_counter/server │
  9. │ error log path │ / data/file/qiquan/over_the_counter/server/logs/app-err- 0. log
  10. │ out log path │ / data/file/qiquan/over_the_counter/server/logs/app-out- 0. log
  11. │ pid path │ /root/.pm2/pids/oc-server- 0.pid │
  12. │ mode │ fork_mode │
  13. │ node v8 arguments │ │
  14. │ watch & reload │ │
  15. │ interpreter │ node │
  16. │ restarts │ 293
  17. │ unstable restarts │ 0
  18. │ uptime │ 87 m
  19. │ created at │ 2016- 08- 26T08: 13: 43.705Z │
  20. └───────────────────┴──────────────────────────────────────────────────────────────┘

配置文件

简单说明

  • 配置文件里的设置项,跟命令行参数基本是一一对应的。
  • 可以选择yaml或者json文件,就看个人洗好了。
  • json格式的配置文件,pm2当作普通的js文件来处理,所以可以在里面添加注释或者编写代码,这对于动态调整配置很有好处。
  • 如果启动的时候指定了配置文件,那么命令行参数会被忽略。(个别参数除外,比如--env)

例子

举个简单例子,完整配置说明请参考官方文档

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值