pm2 部署命令
准备工作
node安装
设置node软连接
ln -s /opt/node-v14.14.0-linux-x64/bin/node /usr/bin/node
ln -s /opt/node-v14.14.0-linux-x64/bin/npm /usr/bin/npm
pm2 命令
pm2 start npm --name homepage1 -- run start
pm2 start npm --name homepage -- run start
#1、安装pm2(npm版本太低可能会导致安装失败,升级步骤见后文)
npm install -g pm2
#查看pm2的安装路径
whereis pm2
pm2: /opt/node-v16.14.0-linux-x64/bin/pm2
#设置软连接 或者配置/etc/profile
ln -s /opt/node-v14.14.0-linux-x64/lib/node_modules/pm2/bin/pm2 /usr/bin/pm2
#修改软连接
ln -snf /opt/node-v14.14.0-linux-x64/lib/node_modules/pm2/bin/pm2 /usr/bin/pm2
#配置/etc/profile
export NODE_HOME=/usr/local/nodejs/node-v12.12.0-linux-x64
export PATH=$NODE_HOME/bin:$PATH
#更新
source /etc/profile
#查看版本
pm2 -v
#首先确保您正确保存了所有进程:
sudo pm2 save
#最后更新内存中的PM2进程:
sudo pm2 update
#启动进程(需要进入该项目所在目录下)
pm2 start 进程名
#启动成功后可进行访问,若不能访问检查一下端口的下行规则是否开放
#查看进程
pm2 list
#停止、删除进程
pm2 stop/delete 进程名
#查看日志
pm2 logs
#查看项目运行情况,包括内存,cpu状态等
pm2 monit
#保存当前已经启动了的服务.pm2/dump.pm2这个文件是否已经有保存到数据, save之前无该文件
pm2 save
#设置开机自启的配置
pm2 startup
# 删除
rm /usr/bin/pm2
rm -r /usr/local/lib/node_modules
rm -r /root/.pm2/
# 重新安装pm2
npm install pm2 -g
# 建立软链接
ln -s /opt/node-v16.14.0-linux-x64/lib/node_modules /usr/bin/pm2
ecosystem.config.js
module.exports = {
apps : [{
name: 'home',
script: './node_modules/nuxt/bin/nuxt.js',
args: 'start',
min_uptime: 60s,
max_restarts: 30,
/*
//用于生产环境与开发环境的切换
env: {
NODE_ENV: 'development'
},
env_production: {
NODE_ENV: 'production'
}*/
exec_mode: 'cluster_mode',
max_memory_restart: '400M', //如果超过指定的内存量,您的应用将重新启动
log_date_format: 'YYYY-MM-DD HH:mm Z',
merge_logs: true,
combine_logs: true, //如果设置为true,则避免使用进程ID后缀日志文件
error_file: './logs/app.log',
out_file: './logs/err.log',
pid_file: './logs/app.pid',
exec_interpreter: 'node',
watch: false
}]
}
说明:
- apps:json结构,apps是一个数组,每一个数组成员就是对应一个pm2中运行的应用
- name:应用程序名称
- cwd:应用程序所在的目录
- script:应用程序的脚本路径
- log_date_format:
- error_file:自定义应用程序的错误日志文件
- out_file:自定义应用程序日志文件
- pid_file:自定义应用程序的pid文件
- instances:启动的线程数量
- min_uptime:最小运行时间,这里设置的是60s即如果应用程序在60s内退出,pm2会认为程序异常退出,此时触发重启max_restarts设置数量
- max_restarts:设置应用程序异常退出重启的次数,默认15次(从0开始计数)
- cron_restart:定时启动,解决重启能解决的问题
- watch:是否启用监控模式,默认是false。如果设置成true,当应用程序变动时,pm2会自动重载。这里也可以设置你要监控的文件。
- merge_logs:
- exec_interpreter:应用程序的脚本类型,默认是nodejs
- exec_mode:应用程序启动模式,默认是fork
- autorestart:启用/禁用应用程序崩溃或退出时自动重启
- vizion:启用/禁用vizion特性(版本控制)
- 可以通过pm2 start processes.json来启动。
总结
Error: Cannot find module ‘xxx/pm2/lib/ProcessContainerFork.js’
导致上面错误原因是pm2环境发生了变化,需要删除.pm2文件
rm -rf ~/.pm2
执行完命令后,重新启动加载