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" ]