Preview
Skip to content
CodingDiary
返回

后台运行node服务

编辑页面
导读

Node 服务一关终端就停了?用 PM2 守护进程!本文介绍 3 种后台运行 Node 服务的方式,重点推荐 PM2:支持负载均衡、进程监控、日志管理、开机自启。附完整命令速查表:start、stop、restart、logs、monit、save、startup 等,一文掌握 PM2 核心用法。

前言

很多时候,我们需要后台运行我们的 node 服务,有3种方式可以实现。

  1. 使用Linux自带的nohup命令
  2. 使用forever命令
  3. 使用PM2管理node进程

这里推荐使用PM2来管理和运行我们的node服务

1. 简介

PM2 是一个开源的带有负载均衡功能的 node 应用的进程管理器,包括守护进程,监控,日志的一整套完整的功能,基本是Nodejs应用程序不二的守护进程选择,事实上它并不仅仅可以启动Nodejs的程序,只要是一般的脚本的程序它同样可以胜任。当你要把你的独立代码利用全部的服务器上的所有CPU,并保证进程永远都活着,0秒的重载,PM2是完美的选择。

2. 安装

npm install pm2 -g

3. 命令

$ 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 npm -- start        # 当前目录执行npm start

$ pm2 start npm --name "es-head" -- start # 当前目录执行npm start并命名为 "es-head"

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

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

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

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

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

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

$ 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                 # 重新加载保存的应用列表

4. 参考

  1. PM2官方文档

编辑页面
分享到:

上一篇
Hello,Spring Boot!
下一篇
Neo4j 和 Mysql 查询基本语法的区别