Skip to content

koa2 + pm2 开机启动

pm2

PM2 是带有内置负载平衡器的 Node.js 应用程序的生产过程管理器。 可以利用它来简化很多 Node 应用管理的繁琐任务,如性能监控、自动重启、负载均衡等。

安装部署

  1. 我们一般会把 pm2 安装到全局:
shell
npm install pm2 -g
  1. 安装windows自启动包:
shell
npm install pm2-windows-startup -g
  1. 创建开机启动脚本文件:
shell
pm2-startup install

注意

并不是到第3步就可以了,需要4、5步操作完,开机启动才有效。

  1. 使用pm2启用项目:
shell
pm2 start 路径 --name 名称

例如:pm2 start ./app.js –name xsx

  1. 保存pm2中的项目:
shell
pm2 save

注意

注意:pm2 save很重要, 它保存当前 pm2 正在管理的 NodeJS 服务, 并在开机后恢复这些服务。

重启电脑可以查看( 以表格显示 ):

shell
pm2 ls

如果要卸载服务,执行:

shell
pm2-service-uninstall

常用命令

pm2 的服务都有一个数字 id,你可以用 id 快速操作它。下面以编号为 0 的服务为例(当然,把 id 换为应用名也是一样的):

  • pm2 start # 启动一个服务,携带 --name 参数添加一个应用名,携带参数 --watch 将观察修改重启服务
  • pm2 list # 列出当前的服务
  • pm2 monit # 监视每个node进程的CPU和内存的使用情况
  • pm2 stop 0 # 停止服务
  • pm2 stop all # 停止所有服务进程
  • pm2 restart 0 # 重启服务
  • pm2 restart all # 重启所有进程
  • pm2 delete 0 # 删除服务
  • pm2 delete all # 删除全部服务
  • pm2 logs # 查看所有服务的输出日志
  • pm2 logs 0 # 查看服务的输出日志

更详细用法请看:https://github.com/Unitech/pm2

扩展阅读

pm2 以 windows 服务运行

通过上面 pm2-windows-startup 的方式【推荐】,我们在windows 服务里面是找不到 pm2 相关服务的,它是基于 start-on-windows-boot 在注册表中将 PM2 设为自启动程序,从而实现自启动。

而 pm2-windows-service 基于 node-windows 将 PM2 注册为 Windows 服务。

两种方案经测试,只有 pm2-windows-startup 在 Windows Server 2012 上可行,故选择 pm2-windows-startup 作为解决 Node.js 应用开机自启动的方案。

所以,这里只顺带说说 pm2 以 windows 服务运行的操作步骤:

  1. npm i pm2 -g
  2. npm i pm2-windows-service -g
  3. 安装服务:pm2-service-install -n myservice (安装后在windows服务中多了一个myservice的服务) 卸载命令:pm2-service-uninstall
  4. 设置环境变量:PM2_SERVICE_SCRIPTS = PM2 的配置文件
  5. windows 服务中重新启动 myservice 服务