pm2的相关操作记录

pm2: Advanced, production process manager for Node.js

服务器上跑 Node 脚本、Hexo 预览或小型 API,关掉 SSH 进程就挂。PM2 负责守护、重启和看多实例。下面是我当时记的几条命令和一个用 child_process 拉起 hexo 的示例。


//run.js

const { exec } = require('child_process')

exec('hexo s',(error, stdout, stderr) => {

    if(error){

         console.log(`exec error: ${error}`)

         return

    }

    console.log(`stdout: ${stdout}`);

    console.log(`stderr: ${stderr}`);

})

exec 会起子 shell,适合一条命令;长期服务更常见是 pm2 start app.js 直接盯入口文件。示例里 hexo 输出进 pm2 日志,用 pm2 logs 看。

pm2 delete all

删除所有进程

清空前 pm2 list 确认名单,别误杀线上别的服务。

pm2 start run.js

启动run.js fork模式

默认 fork,单进程。改代码后 pm2 restart run.jspm2 reload(集群模式更友好)。

pm2 start run.js -i 2

启动run.js 创建两个进程

-i 2 开两个实例,适合无状态 HTTP;Hexo 这种单端口预览别开多实例,会端口冲突。

常用还有 pm2 save + pm2 startup 做开机自启,换机部署时记得在新机器上再跑一遍 startup 生成的命令。

待续

版权声明: 本文首发于 指尖魔法屋-pm2的相关操作记录https://blog.thinkmoon.cn/post/514-deploy-practice-pm2-nodejs/) 转载或引用必须申明原指尖魔法屋来源及源地址!