centos7 使用pm2 (实操版)

275 阅读2分钟
  1. 安装
npm install pm2 -g
  1. cd到项目目录,执行
pm2 start "pnpm run start:prod" --name myAppName

成功后接口就能在后台启动了

  1. 由于几次错误使用, 学到了delete和stop
pm2 delete myAppName
pm2 stop myAppName
  1. pm2重命名AppName没有直接命令,这里的id不是pid就是id。
pm2 restart <id> --name newname

restart之后日志会用原来的名字不如删了重新start

pm2 delete myAppName
pm2 start "pnpm run start:prod" --name myAppName
  1. 列出所有正在运行的应用程序:
pm2 list
  1. 列出应用详细信息,可能用到的 error log pathout log path
pm2 describe myAppName
  1. 出现个保安厅里监控室一样的控制台,没啥用
pm2 monit
  1. 集群模式,多进程将可以负载均衡,写max的话开几核由cpu最大数定 <processes> 可以是 'max' 、 -1 (所有 cpu 减 1)或要启动的指定实例数。
pm2 start "pnpm run start:prod" -i <processes>
  1. 热重载,允许在不停机的情况下更新应用程序,接口还是会挂的跟restart没啥区别
pm2 reload all
  1. 以后也许能用到在docker内pm2.keymetrics.io/docs/usage/…
CMD [ "pm2-runtime", "npm", "--", "start" ]
  1. 看日志,log在$HOME/.pm2/logs
pm2 logs myAppName
pm2 logs myAppName --lines 1000
pm2 logs myAppName --err
pm2 logs myAppName --out
pm2 logs myAppName --timestamp 2023-12-29-00:00:00

  1. 启动日志轮换 日志轮转是系统管理中使用的一个自动化过程,当日志文件太旧或太大时,它会压缩、移动(归档)、重命名或删除日志文件(请参阅此处可能还有其他适用的指标)。 新传入的日志数据将转到新的新文件(位于同一位置)。
pm2 install pm2-logrotate
  1. PM2 可以生成并配置启动脚本,以使 PM2 和您的进程在每次服务器重新启动时保持活动状态。
pm2 startup

会把下面这些配置写入到/etc/systemd/system/pm2-root.service下,在重启系统的时候执行这些命令

[Unit]
Description=PM2 process manager
Documentation=https://pm2.keymetrics.io/
After=network.target

[Service]
Type=forking
User=root
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
Environment=PATH=/root/.nvm/versions/node/v16.20.2/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
Environment=PM2_HOME=/root/.pm2
PIDFile=/root/.pm2/pm2.pid
Restart=on-failure

ExecStart=/root/.nvm/versions/node/v16.20.2/lib/node_modules/pm2/bin/pm2 resurrect
ExecReload=/root/.nvm/versions/node/v16.20.2/lib/node_modules/pm2/bin/pm2 reload all
ExecStop=/root/.nvm/versions/node/v16.20.2/lib/node_modules/pm2/bin/pm2 kill

[Install]
WantedBy=multi-user.target
  1. 估计是保存正在使用的myAppName列表,跟pm2 startup配合使用, 存在/root/.pm2/dump.pm2
pm2 save
  1. 移除开机启动
pm2 unstartup