pm2 为nodejs 进程管理器 为某个nodejs进程提供守护进程功能
npm install -g pm2 全局安装
pm2 start app.js 替代 node app.js 以守护进程启动app.js
pm2 start app.js –name wb123 以守护进程启动app.js 并命名为wb123
pm2 start bin/www –watch 以守护进程启动bin/www 并监控文件变化自动重启
pm2 restart wb123 重启wb123服务
pm2 stop wb123 停止服务 pm2 stop all 停止所有
pm2 delete www 删除www服务 pm2 delete all 删除所有
pm2 list 查看所有进程
pm2 monit 查看进程内存等
pm2 -h 查看命令详细
pm2 启动其他进程 在当前文件写下一个 xxx.json的脚本
pm2 start xxx.json 执行
脚本内容如下
{
"name": "应用进程名称",
"args": "传递给脚本的参数",
"script": "启动的脚本路径",
"exec_interpreter": "指定的脚本解释器",
"exec_mode": "fork",
"max_memory_restart": "100M",
//其它参数
"watch": [ // 监控变化的目录,一旦变化,自动重启
"bin",
"routers"
],
"ignore_watch" : [ // 从监控目录中排除
"node_modules",
"logs",
"public"
],
"watch_options": {
"followSymlinks": false
},
"error_file" : "./logs/app-err.log", // 错误日志路径
"out_file" : "./logs/app-out.log", // 普通日志路径
"env": {
"NODE_ENV": "production" // 环境参数,当前指定为生产环境
}
}
php脚本
{
"name": "php-socket",
"args": "",
"script": "./include/Socket.php",
"exec_interpreter": "php.exe",
"exec_mode": "fork",
"max_memory_restart": "100M"
}
java jar包
{
"name": "my-server",
"script": "/usr/bin/java",
"args": [
"-jar",
"server.jar"
],
"exec_interpreter": "",
"exec_mode": "fork"
}
{
"name": "yhtAdmin",
"script": "java",
"args": [
"-jar",
"background-0.0.1-SNAPSHOT.jar"
],
"error_file":"./log/err.log",
"out_file":"./log/out.log",
"exec_interpreter": "",
"exec_mode": "fork"
}