當你要把你的獨立代碼利用全部的服務器上的所有CPU,並保證進程永遠都活着,0秒的重載, PM2是完美的。它非常適合IaaS結構
用法
$
npm install pm2 -g # 命令行安裝 pm2
$ pm2 start app.js -i 4 #後臺運行pm2,啓動4個app.js
# 也可以把'max' 參數傳遞給 start 開啓最多app
# 正確的進程數目依賴於Cpu的核心數目
$ pm2 start app.js --name my-api # 命名進程
$ pm2 list # 顯示所有進程狀態
$ pm2 monit # 監視所有進程
$ pm2 logs # 顯示所有進程日誌
$ pm2 stop all # 停止所有進程
$ pm2 restart all # 重啓所有進程
$ pm2 reload all # 0秒停機重載進程 (用於 NETWORKED 進程)
$ pm2 stop 0 # 停止指定的進程
$ pm2 restart 0 # 重啓指定的進程
$ pm2 startup # 產生 init 腳本 保持進程活着
$ pm2 web # 運行健壯的 computer API endpoint (http://localhost:9615)
$ pm2 delete 0 # 殺死指定的進程
$ pm2 delete all # 殺死全部進程
運行進程的不同方式:
$ pm2 start app.js -i max # 根據有效CPU數目啓動最大進程數目
$ pm2 start app.js -i 3 # 啓動3個進程
$ pm2 start app.js -x #用fork模式啓動 app.js 而不是使用 cluster
$ pm2 start app.js -x -- -a 23 # 用fork模式啓動 app.js 並且傳遞參數 (-a 23)
$ pm2 start app.js --name serverone # 啓動一個進程並把它命名爲 serverone
$ pm2 stop serverone # 停止 serverone 進程
$ pm2 start app.json # 啓動進程, 在 app.json裏設置選項
$ pm2 start app.js -i max -- -a 23 #在--之後給 app.js 傳遞參數
$ pm2 start app.js -i max -e err.log -o out.log # 啓動 並 生成一個配置文件
你也可以執行用其他語言編寫的app ( fork 模式):
$ pm2 start my-bash-script.sh -x --interpreter bash
$ pm2 start my-python-script.py -x --interpreter python
- 0 秒停機重載:這項功能允許你重新載入代碼而不用失去請求連接。