Skip to content

PM2管理Node服务

2024-08-19

官方文档:https://pm2.keymetrics.io/docs/usage/pm2-doc-single-page/

一、pm基础入门

shell
npm install -g pm2 				 		  			# 安装
pm2 -v   											# 版本信息
pm2 start ./bin/www	 					            # 启动
pm2 list										    # 查看
pm2 stop [进程Id]|[进程名] 			 				# 关闭
pm2 monit											# 监控

二、使用配置文件

shell
# generate a sample ecosystem.config.js file
pm2 init ecosystem.config.js
javascript
//  ecosystem.config.js 参考
module.exports = {
  apps: [
    {
      name: 'ao_web',
      port: '3000',
      exec_mode: 'cluster',
      instances: 'max',
      script: './output/server/index.mjs'
    }
  ]
}
shell
pm2 start ecosystem.config.js   				# 运行
pm2 start ecosystem.config.js					# Start all applications
pm2 stop ecosystem.config.js          			# Stop all
pm2 restart ecosystem.config.js       			# Restart all
pm2 reload ecosystem.config.js        			# Reload all
pm2 delete ecosystem.config.js        			# Delete all

三、伸缩

shell
pm2 start app +3       			# add up by 3 workers
pm2 start app 2				 	# add up or down to 2 workers total

四、docker中

使用pm2-runtime代替pm2,pm2-runtime可以保证容器能一直运行

https://stackoverflow.com/questions/53962776/whats-the-difference-between-pm2-and-pm2-runtime

dockerfile
FROM node:18.15.0

RUN npm install pm2 -g
RUN mkdir -p /app
COPY . /app
WORKDIR /app

#COPY ./env/.prod-env /app/env/.prod-env

ENV HOST 0.0.0.0 
EXPOSE 3000

RUN npm install
RUN npm run build

CMD [ "pm2-runtime", "ecosystem.config.js" ]

花海相伴