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