https://github.com/jawil/blog/issues/7
配置項:
name 應用進程名稱;
script 啟動腳本路徑;
cwd 應用啟動的路徑,關於script與cwd的區別舉例說明:在/home/polo/目錄下運行/data/release/node/index.js,此處script為/data/release/node/index.js,cwd為/home/polo/;
args 傳遞給腳本的參數;
interpreter 指定的腳本解釋器;
interpreter_args 傳遞給解釋器的參數;
instances 應用啟動實例個數,僅在cluster模式有效,默認為fork;
exec_mode 應用啟動模式,支持fork和cluster模式;
watch 監聽重啟,啟用情況下,文件夾或子文件夾下變化應用自動重啟;
ignore_watch 忽略監聽的文件夾,支持正則表達式;
max_memory_restart 最大內存限制數,超出自動重啟;
env 環境變量,object類型,如{"NODE_ENV":"production", "ID": "42"};
log_date_format 指定日志日期格式,如YYYY-MM-DD HH:mm:ss;
error_file 記錄標准錯誤流,$HOME/.pm2/logs/XXXerr.log),代碼錯誤可在此文件查找;
out_file 記錄標准輸出流,$HOME/.pm2/logs/XXXout.log),如應用打印大量的標准輸出,會導致pm2日志過大;
min_uptime 應用運行少於時間被認為是異常啟動;
max_restarts 最大異常重啟次數,即小於min_uptime運行時間重啟次數;
autorestart 默認為true, 發生異常的情況下自動重啟;
cron_restart crontab時間格式重啟應用,目前只支持cluster模式;
force 默認false,如果true,可以重復啟動一個腳本。pm2不建議這么做;
restart_delay 異常重啟情況下,延時重啟時間;
穩定運行建議
合理設置min_uptime,min_uptime是應用正常啟動的最小持續運行時長,超出此時間則被判定為異常啟動;
設定異常重啟延時restart_delay,對於異常情況導致應用停止,設定異常重啟延遲可防止應用在不可測情況下不斷重啟的導致重啟次數過多等問題;
設置異常重啟次數,如果應用不斷異常重啟,並超過一定的限制次數,說明此時的環境長時間處於不可控狀態,服務器異常。此時便可停止嘗試,發出錯誤警告通知等
