簡介
PM2是常用的node進程管理工具,它可以提供node.js應用管理,如自動重載、性能監控、負載均衡等。同類工具有Supervisor、Forever等。
pm2是一個進程管理工具,可以用它來管理你的node進程,并查看node進程的狀態,當然也支持性能監控,進程守護,負載均衡等功能。pm2基本是Nodejs應用程序不二的守護進程選擇,事實上它并不僅僅可以啟動Nodejs的程序,只要是一般的腳本的程序它同樣可以勝任。??
常用命令
命令 | 說明 |
---|---|
pm2 startup | 設置pm2開機自啟動 |
pm2 unstartup | 移除pm2開機自啟動 |
pm2 save | 保存當前進程開機自啟動 |
pm2 start <進程啟動命令> [--name <進程名>] | 啟動應用程序 |
pm2 list | 顯示所有進程狀態 |
pm2 monit | 監控進程 |
pm2 logs [進程id或名字] | 顯示進程日志 |
pm2 stop [all] | 停止[所有]進程 |
pm2 restart [all] | 重啟[所有]進程 |
pm2 delete [<進程名或者id>,all] | 刪除指定[所有]進程 |
pm2 info [進程id或名字] | 查看應用程序信息 |
使用 pm2 守護 asp.net core 應用程序
創建一個 webapi 項目
# 創建項目
dotnet new webapi --no-https -o testwebapi
# 發布項目
cd testwebapi/
dotnet publish -c release
cd bin/release/netcoreapp2.1/publish
# 運行項目
dotnet testwebapi.dll
運行成功會有如下輸出:
結束我們剛剛運行的程序,就在我們剛剛的目錄執行下面的命令:
pm2 start "dotnet testwebapi.dll" --name testwebapi
執行成功:
我們可以清晰的看到我們的應用程序的 pid、運行狀態、重啟次數(應用程序崩潰重啟/手動重啟)、運行時間、cpu和內存占用等。十分方便
使用 curl 訪問 api 檢查是否運行成功:
curl http://localhost:5000/api/values
?查看日志
pm2 logs testwebapi
查看應用程序信息
pm2 info testwebapi
監控應用程序
pm2 monit testwebapi
重啟策略
pm2 會在你的應用程序異常退出時,自動幫你重啟,所謂異常退出,指退出代碼非0。
測試:
修改 valuecontroller 添加退出代碼為1的代碼:
發布,并使用 pm2 啟動(此處略)。
通過 pm2 list查詢應用程序重啟次數為0:
訪問 api 觸發異常退出:
curl http://localhost:5000/api/values
再次通過 pm2 list命令查詢可以發現重啟了: