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.js 或 pm2 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/) 转载或引用必须申明原指尖魔法屋来源及源地址!