1. 程式人生 > >pm2 配置檔案及相關命令

pm2 配置檔案及相關命令


{
  "apps": {
      "name": "wuwu",                             // 專案名          
      "script": "./bin/www",                      // 執行檔案
      "cwd": "./",                                // 根目錄
      "args": "",                                 // 傳遞給指令碼的引數
      "interpreter": "",                          // 指定的指令碼直譯器
      "interpreter_args": "",                     // 傳遞給直譯器的引數
      "watch": true,                              // 是否監聽檔案變動然後重啟
      "ignore_watch": [                           // 不用監聽的檔案
          "node_modules",
          "logs"
      ],
      "exec_mode": "cluster_mode",                // 應用啟動模式,支援fork和cluster模式
      "instances": 4,                             // 應用啟動例項個數,僅在cluster模式有效 預設為fork;或者 max
      "max_memory_restart": 8,                    // 最大記憶體限制數,超出自動重啟
      "error_file": "./logs/app-err.log",         // 錯誤日誌檔案
      "out_file": "./logs/app-out.log",           // 正常日誌檔案
      "merge_logs": true,                         // 設定追加日誌而不是新建日誌
      "log_date_format": "YYYY-MM-DD HH:mm:ss",   // 指定日誌檔案的時間格式
      "min_uptime": "60s",                        // 應用執行少於時間被認為是異常啟動
      "max_restarts": 30,                         // 最大異常重啟次數,即小於min_uptime執行時間重啟次數;
      "autorestart": true,                        // 預設為true, 發生異常的情況下自動重啟
      "cron_restart": "",                         // crontab時間格式重啟應用,目前只支援cluster模式;
      "restart_delay": "60s"                      // 異常重啟情況下,延時重啟時間
      "env": {
         "PORT": 3010,                            // 埠號
         "NODE_ENV": "production",                // 環境引數,當前指定為生產環境 process.env.NODE_ENV 
         "REMOTE_ADDR": ""               // process.env.REMOTE_ADDR
      },
      "env_production": {
          "PORT": 3010,                           // 埠號
          "NODE_ENV": "production",              // 環境引數,當前指定為開發環境 pm2 start app.js --env production
          "REMOTE_ADDR": ""
      },
      "env_test": {  
         "PORT": 3010,                           // 埠號         
          "NODE_ENV": "test",                    // 環境引數,當前指定為測試環境 pm2 start app.js --env test
          "REMOTE_ADDR": ""
      }
  }

以下是pm2常用的命令列 $ pm2 start app.js              # 啟動app.js應用程式 $ pm2 start app.js -i 4         # cluster mode 模式啟動4個app.js的應用例項     # 4個應用程式會自動進行負載均衡 $ pm2 start app.js --name="api" # 啟動應用程式並命名為 "api" $ pm2 start app.js --watch      # 當檔案變化時自動重啟應用 $ pm2 start script.sh           # 啟動 bash 指令碼 $ pm2 list                      # 列表 PM2 啟動的所有的應用程式 $ pm2 monit                     # 顯示每個應用程式的CPU和記憶體佔用情況 $ pm2 show [app-name]           # 顯示應用程式的所有資訊 $ pm2 logs                      # 顯示所有應用程式的日誌 $ pm2 logs [app-name]           # 顯示指定應用程式的日誌 $ pm2 flush $ pm2 stop all                  # 停止所有的應用程式 $ pm2 stop 0                    # 停止 id為 0的指定應用程式 $ pm2 restart all               # 重啟所有應用 $ pm2 reload all                # 重啟 cluster mode下的所有應用 $ pm2 gracefulReload all        # Graceful reload all apps in cluster mode $ pm2 delete all                # 關閉並刪除所有應用 $ pm2 delete 0                  # 刪除指定應用 id 0 $ pm2 scale api 10              # 把名字叫api的應用擴充套件到10個例項 $ pm2 reset [app-name]          # 重置重啟數量 $ pm2 startup                   # 建立開機自啟動命令 $ pm2 save                      # 儲存當前應用列表 $ pm2 resurrect                 # 重新載入儲存的應用列表 $ pm2 update                    # Save processes, kill PM2 and restore processes $ pm2 generate                  # Generate a sample json configuration file $ pm2 deploy app.json prod setup    # Setup "prod" remote server $ pm2 deploy app.json prod          # Update "prod" remote server $ pm2 deploy app.json prod revert 2 # Revert "prod" remote server by 2 $ pm2 module:generate [name]    # Generate sample module with name [name] $ pm2 install pm2-logrotate     # Install module (here a log rotation system) $ pm2 uninstall pm2-logrotate   # Uninstall module $ pm2 publish                   # Increment version, git push and npm publish