当前位置:网站首页 > 技术博客 > 正文

pm2(PM2 命令使用方法总结)



PM2是 node 进程管理工具,可以利用它来简化很多node应用管理的繁琐任务,这里推荐一个 node 版本控制工具--nvm

对于线上项目,如果直接通过 来启动,因为 node 是单线程的,所以如果报错了可能会使项目直接停止,从而导致整个服务崩溃。

一般监控 node 有几种方案:

  1. supervisor: 一般用作开发环境的使用;
  2. forever: 管理多个站点,一般每个站点的访问量不大的情况,不需要监控;
  3. PM2: 网站的访问量比较大,需要完整的监控页面。
  • 后台运行(关掉cmd窗口依然运行)
  • 0 秒停机重载,维护升级时不需要停机
  • Linux (stable) & MacOSx (stable) & Windows (stable).多平台支持
  • 进程守护 (停止不稳定的进程,避免无限循环)
  • 内建负载均衡
  • 实时控制台检测
  • 提供 HTTP API等
  • 远程控制和实时的接口API ( nodejs 模块,允许和PM2进程管理器交互 )
  • 不仅仅可以启动node程序,对于一般的脚本程序同样可以

确保有node环境

(如果提示找不到命令且你已安装成功,则可能你没有配置环境变量,需要自己手动配一下)

参数说明:

  • :监听应用目录的变化,一旦发生变化,自动重启。如果要精确监听、不见听的目录,最好通过配置文件。
  • :启用多少个实例,可用于负载均衡。如果或者,则根据当前机器核数确定实例数目。
  • :排除监听的目录/文件,可以是特定的文件名,也可以是正则。比如
  • :指定应用的名称。查看应用信息的时候可以用到。
  • :标准输出日志文件的路径。
  • :错误输出日志文件的路径。
  • :the interpreter pm2 should use for executing app (bash, python...)。比如你用的coffee script来编写应用。
  • :用fork模式启动app.js,而不是cluster模式
  • fork模式:单实例多进程,常用于多语言混编,比如php、python等,不支持端口复用,需要自己做应用的端口分配和负载均衡的子进程业务代码。
    • 缺点:就是单服务器实例容易由于异常会导致服务器实例崩溃。
  • cluster模式:多实例多进程,但是只支持node,端口可以复用,不需要额外的端口配置,0代码实现负载均衡。
    • 优点:就是由于多实例机制,可以保证服务器的容错性,就算出现异常也不会使多个服务器实例同时崩溃。

例子:

  • :实时监控的方式启动,app.js文件有变动时,pm2会自动reload(重启)
  • :根据有效CPU数目启动最大进程数目
  • :启动3个进程
  • :排除监听的目录/文件
  • :启动一个进程并把它命名为mynode
  • :启动进程, 可以在 app.json里设置选项
  • :在 – 之后给 app.js 传递参数(-z 10)
  • :显示所有进程信息;
  • ,:查看进程id为 11 的详细信息;
  • :进入监视页面,监视每个node进程的CPU和内存的使用情况。
  • :重启id为 11 的进程;
  • :重启所有进程;
  • :0秒停机重载id为 11 进程(用于 NETWORKED 进程);
  • :重载所有进程;
  • :停止/删除id为 11 的进程;
  • :停止/删除所有进程;
  • :显示所有进程的日志;
  • :显示进程id为 11 的日志;
  • :清空所有日志文件;
  • :重载所有日志;
  • :产生 init 脚本,保持进程活着;
  • :杀死pm2进程 ;

1、通过保存当前进程状态。
2、通过生成开机自启动的命令。例如:
3、将步骤2生成的命令,粘贴到控制台进行,搞定。

在上面的启动命令例子中,有一条命令,可以在app.json文件中添加配置

apps:json结构,apps是一个数组,数组中的每一个对象就对应一个pm2中运行的应用

参数说明:

  • name:应用程序名称
  • args:脚本的参数域
  • cwd:应用程序所在的目录
  • script:应用程序的脚本路径
  • log_date_format:
  • node_args:node 的参数域
  • error_file:自定义应用程序的错误日志文件
  • out_file:自定义应用程序日志文件
  • pid_file:自定义应用程序的pid文件
  • instances:
  • min_uptime:最小运行时间,这里设置的是60s即如果应用程序在60s内退出,pm2会认为程序异常退出,此时触发重启max_restarts设置数量
  • max_restarts:设置应用程序异常退出重启的次数,默认15次(从0开始计数)
  • cron_restart:定时启动,解决重启能解决的问题
  • watch:是否启用监控模式,默认是false。如果设置成true,当应用程序变动时, pm2会自动重载。这里也可以设置你要监控的文件。
  • merge_logs:
  • exec_interpreter:应用程序的脚本类型,这里使用的shell,默认是nodejs
  • exec_mode:应用程序启动模式,这里设置的是cluster_mode(集群),默认是fork
  • autorestart:启用/禁用应用程序崩溃或退出时自动重启
  • vizion:启用/禁用vizion特性(版本控制)

举个例子:

 

注:命令不会重新进行 配置文件 需要关掉重启。

  • 上一篇: opengl教学视频
  • 下一篇: 红黑树的概念
  • 版权声明


    相关文章:

  • opengl教学视频2024-12-08 18:30:02
  • 好看的ui网站2024-12-08 18:30:02
  • 金手指教程视频2024-12-08 18:30:02
  • c语言指针数组和数组指针怎么用2024-12-08 18:30:02
  • mysql选择前10条数据2024-12-08 18:30:02
  • 红黑树的概念2024-12-08 18:30:02
  • 重载乘法运算符的函数原型声明2024-12-08 18:30:02
  • 跳表数据结构与算法2024-12-08 18:30:02
  • 双向链表构造方法2024-12-08 18:30:02
  • speex音频编码2024-12-08 18:30:02