美文网首页
使用 PM2 管理 Node 应用(转)

使用 PM2 管理 Node 应用(转)

作者: 肖金光xjg | 来源:发表于2019-03-05 10:56 被阅读0次

简介

Node.js应用能够简单地通过命令行启动,只要有Node 运行环境。对于生产环境,情况要复杂得多。不仅需要数据库等功能性组件,更对安全性、可靠性、可扩展性等方面有更高的要求。

PM2是一个针对Node应用且自带负载均衡的进程管理器,拥有forever和Upstart都不具备的特性。能够管理Node 应用,使其随系统启动,出错挂掉能自动重启。还能对应用的运行状态进行监控,为应用生成SystemV, SystemD 服务启动脚本。PM2支持CoffeeScript,可以运行在Linux和OSX环境。

PM2是非常优秀工具,它提供对基于node.js的项目运行托管服务。它基于命令行界面,提供很多特性:

内置的负载均衡器(使用nodecluster module)
以守护进程运行
0s(不间断)重启
为ubuntu/CentOS 提供启动脚本
关闭不稳定的进程(避免无限死循环)
基于控制台监控
HTTP API
远程控制以及实时监控接口
pm2使用nodecluster构建一个内置的负载均衡器。部署多个app的实例来达到分流的目的以减轻单app处理的压力。

安装

npm install pm2 -g
npm install pm2@latest -g
npm install git://github.com/Unitech/pm2#master -g

升级安装

npm install pm2@latest -g
pm2 update  #Update in memory pm2

启动应用

pm2 start <app_name|id|all>  #可以指定应用名称pm2 start app,js --name=test
pm2 start app.js -i 4 --name "episode"   #-i 4 表示启动四个app.js, 也可以-i max 将会最大限度利用cpu核心数目 --name 用于命名进程
pm2 start app.js
pm2 start app.js -i 1  #cluster_mode
pm2 start app.js -i 0  #支持使用多核 CPU
pm2 start big-app.js --max-memory-restart 20M
cluster_mode 需要Node 0.11.x 以上,否则请用fork mode。

传递参数

pm2 start app.js -- -p 8080 
pm2 start app.js --node-args="--debug=7001 --trace-deprecation"

命名应用


NODE_ENV=production pm2 start index.js -n Ghost

生成服务脚本

pm2 startup <ubuntu|centos|gentoo|systemd>  #产生init脚本,保持进程活着

查看信息

pm2 list          # 显示所有进程状态
pm2 jlist         # Print process list in raw JSON
pm2 prettylist    # Print process list in beautified JSON
pm2 info 0        # Display all informations about a specific process

运行控制

pm2 stop 0             # 停止指定进程
pm2 stop all           # 停止所有进程
pm2 restart 0          # Restart specific process id
pm2 restart all        # 重启所有进程
pm2 delete 0           # Will remove process from pm2 list
pm2 delete all         # Will remove all processes from pm2 list
pm2 reload 0           # 类似restart,0秒重载,支持 cluster_mode
pm2 reload all         # Will 0s downtime reload (for NETWORKED apps)
pm2 gracefulReload all # Send exit message then reload (for networked apps)
pm2 dump               # ~/.pm2/dump.pm2
pm2 kill               # 杀掉PM2
pm2 resurrect          # 复活所有进程

代码监控

pm2 start app.js --watch  # 代码修改自动重启
pm2 stop 0                # not stop watching
pm2 stop --watch 0        # stop watching

运行监测

pm2 monit              # Monitor all processes

日志

pm2 logs               # 显示所有进程日志
pm2 ilogs              # Advanced termcaps interface to display logs
pm2 flush              # Empty all log file
pm2 reloadLogs         # Reload all logs

杂项

pm2 ping  # Ensure pm2 daemon has been launched
pm2 reset <process>  # Reset meta data (restarted time...)
pm2 sendSignal SIGUSR2 my-app  # Send system signal to script
pm2 start app.js --no-daemon  # run pm2 daemon in the foreground
pm2 describe id|all #查看启动程序的详细信息
pm2 web  #API(端口:9615)

实例

管理Ghost

cd /path/to/ghost/folder
echo "export NODE_ENV=production" >> ~/.profile
source ~/.profile
pm2 kill
pm2 start index.js --name "Ghost"

# Ghost已经运行在PM2管理下
pm2 ls
pm2 stop <process ID>
pm2 monit
pm2 logs

#生成服务启动脚本:/etc/init.d/pm2-init.sh。只会将pm2 list中的应用加入服务启动脚本,确保需要启动的应用就在其中。不要使用root账户(下面用的是ghost账户)。
pm2 startup ubuntu

#生成命令如下:包含node路径,用户账户。执行即可
sudo env PATH=$PATH:/usr/local/bin pm2 startup ubuntu -u ghost
pm2 save或reboot

参考资料

http://www.google.com
https://github.com/Unitech/pm2
http://www.allaboutghost.com/keep-ghost-running-with-pm2/

来源:运维之美 https://www.hi-linux.com/posts/20296.html

相关文章

  • PM2-node 进程管理工具

    PM2官网 pm2进程管理工具使用总结 PM2是node进程管理工具,可以利用它来简化很多node应用管理的繁琐任...

  • pm2配置文件介绍

    PM2的优势 PM2是一个带有负载均衡功能的Node应用的进程管理! 内建负载均衡(使用Node cluster ...

  • pm2 npm nodejs

    PM2的安装和使用简介 一、简介 PM2是node进程管理工具,可以利用它来简化很多node应用管理的繁琐任务,如...

  • 使用 PM2 管理 Node 应用(转)

    简介 Node.js应用能够简单地通过命令行启动,只要有Node 运行环境。对于生产环境,情况要复杂得多。不仅需要...

  • TODO:Node.js pm2使用方法

    TODO:Node.js pm2使用方法 pm2 是一个带有负载均衡功能的Node应用的进程管理器。当你要把你的独...

  • pm2使用

    PM2 是一个带有负载均衡功能的 Node 应用的进程管理器。 主要特性 内建负载均衡(使用 Node clust...

  • 部署node服务器到产品环境

    pm2 PM2 是 Node.js 应用程序的生产进程管理器,具有内置的负载均衡器。PM2 可以使应用程序保持持久...

  • PM2的基本使用

    NodeJS 进程管理器 pm2 的使用 1. pm2 简介 PM2 是一款非常优秀的 Node 进程管理工具,它...

  • pm2:带负载均衡功能的Node应用进程管理工具

    pm2 介绍 pm2是nodejs应用程序的进程管理工具,内置负载均衡。其可以帮助您保持node应用程序的永久活动...

  • pm2

    pm2是node服务端进程管理器,用于简化应用管理任务,性能监控,自动重启,负载均衡,相对使用起来极其简单 一个命...

网友评论

      本文标题:使用 PM2 管理 Node 应用(转)

      本文链接:https://www.haomeiwen.com/subject/eqknuqtx.html