pm2的使用【详细】

323 阅读2分钟

常用命令

pm2 stop all 
pm2 list 
pm2 restart all 
// 启动app.js应用程序 
pm2 start app.js              
// cluster mode 模式启动4个app.js的应用实例 # 4个应用程序会自动进行负载均衡 
pm2 start app.js -i 4         
// 启动应用程序并命名为 "api" 
pm2 start app.js --name="api" 
// 当文件变化时自动重启应用 
pm2 start app.js --watch      
// 启动 bash 脚本 
pm2 start script.sh           
// 列表 PM2 启动的所有的应用程序 
pm2 list                      
// 显示每个应用程序的CPU和内存占用情况 
pm2 monit                     
// 显示应用程序的所有信息 
pm2 show [app-name]           
// 显示所有应用程序的日志 
pm2 logs                      
// 显示指定应用程序的日志 
pm2 logs [app-name]           
pm2 flush 
// 停止所有的应用程序 
pm2 stop all                  
// 停止 id为 0的指定应用程序 $      
pm2 stop 0                    
// 重启所有应用 
pm2 restart all  
// 重启 cluster mode下的所有应用 
pm2 reload all                
// Graceful reload all apps in cluster mode 
pm2 gracefulReload all        
/ 关闭并删除所有应用 
pm2 delete all                
// 删除指定应用 id 0 
pm2 delete 0                  
// 把名字叫api的应用扩展到10个实例 
pm2 scale api 10              
// 重置重启数量 
pm2 reset [app-name]          
// 创建开机自启动命令 
pm2 startup                   
// 保存当前应用列表 
pm2 save                      
// 重新加载保存的应用列表 
pm2 resurrect       
// Save processes, kill PM2 and restore processes 
pm2 update                    
// Generate a sample json configuration file 
pm2 generate                  
pm2 start app.js --node-args="--max-old-space-size=1024"

run项目

(1)pm2启动 server.js 服务

pm2 start /root/project/blog/server/server.js --name blog_server

(2)pm2启动 app 项目

pm2 start /root/project/blog/scripts/start.js --name blog_app

(需耐心等待 pm2启动 app项目) 若是项目未启动成功:

方法一

1.yarn dev  先把项目跑起来(3000端口) 
2.pm2 start /root/project/blog/scripts/start.js --name blog_app (pm2 logs id -> Something is already running on port 3000.) 
3.netstat -tunlp | grep 3000 
4.kill -9 pid 
5.pm2 list 
6.OK

方法二

1.pm2 start /root/project/blog/scripts/start.js --name blog_app
2.netstat -tunlp | grep 3000 
3.kill -9 pid 
4.pm2 list 
5.OK

其它补充

pm2启动后端服务进程

(1)

npm i esm –save 

(2)

方法一:pm2 start index.js --node-args="-r esm"   (服务端index.js 入口文件) 
方法二:pm2 start index.config.js (配置config文件,需要进入当前文件夹启动,不能用下面绝对路径方法,有bug) // cat index.config.js
// cat index.config.js 
module.exports = {     
  apps: [{         
    name: 'index_server',         
    script: 'index.js',         
    node_args: '-r esm',         
    instances: 1,         
    exec_mode: "fork",         
    wait_ready: false,         
    watch: false,         
    listen_timeout: 8000,         
    kill_timeout: 3000     
}] }

绝对路径方法:

pm2 start /root/life/server/index.js --name life_server