使用pm2守護你的.NET Core應用程序

簡介

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

運行成功會有如下輸出:

dafce4439dfe360f098336b049dbeef0.png

結束我們剛剛運行的程序,就在我們剛剛的目錄執行下面的命令:

pm2 start "dotnet testwebapi.dll" --name testwebapi

執行成功:

19bfccb84364ca3fa7100391ff21b12f.png

我們可以清晰的看到我們的應用程序的 pid、運行狀態、重啟次數(應用程序崩潰重啟/手動重啟)、運行時間、cpu和內存占用等。十分方便

使用 curl 訪問 api 檢查是否運行成功:

curl http://localhost:5000/api/values

b5519dca45cdab2e1a9d9e48b3611a10.png

?查看日志

pm2 logs testwebapi

b1a3bf8cba2ab8535380fc6c79eaf58f.png

查看應用程序信息

pm2 info testwebapi

063931e69a20221139fc49870c5e5a8e.png

監控應用程序

pm2 monit testwebapi

1ea8f3d2d1e21b26196e7cf625672f7b.png

重啟策略

pm2 會在你的應用程序異常退出時,自動幫你重啟,所謂異常退出,指退出代碼非0。

測試:

修改 valuecontroller 添加退出代碼為1的代碼:

af6d2a9f49f5a2fc67738b658b7cb7fa.png

發布,并使用 pm2 啟動(此處略)。

通過 pm2 list查詢應用程序重啟次數為0:

2d943cbc9f8149f1c076398238a15004.png

訪問 api 觸發異常退出:

curl http://localhost:5000/api/values

再次通過 pm2 list命令查詢可以發現重啟了:

57c492762ab4acc82e05bacedf2aa039.png

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/281375.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/281375.shtml
英文地址,請注明出處:http://en.pswp.cn/news/281375.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C-指針02 2017/11/24

/* 復習 1.指針類型 int *指針類型 指針指向的變量類型指針指向哪個變量2.基本數據類型 4種指針類型 存放的地址 和系統有關系 4個字節數組類型結構體 枚舉 聯合3.指針加法減法 p 和數組搭配使用4.兩個運算符 *取值(解引用) &取地址5. *(pi) p[i] …

程序員搞笑段子

轉載于:https://www.cnblogs.com/Zhusi/p/10083474.html

學習之旅——工作記錄日志2017.7.09

1.例子&#xff1a;在dev_lala上開發完畢后&#xff0c;切換到dev分支&#xff0c;在此分支上pull最新的代碼來保證dev上的代碼是最新的。在dev分支上git branch -b haha一個新的分支haha&#xff0c; 用git log dev_lala查看提交記錄&#xff0c;將我自己的幾個記錄加到haha分…

Git常用命令與基本操作

Git操作指令系統配置基本命令獲取/刪除Git倉庫更新記錄撤銷操作遠程倉庫的使用分支系統系統配置 git config 為系統自帶的配置指令&#xff0c;它可以控制GIT的行為和外觀 配置用戶信息 git config --global user.name "John Doe" git config --global user.email …

CA周記 - 在 Azure ML 上用 .NET 跑機器學習

.NET 是一個跨平臺&#xff0c;全場景應用的開源技術。你有在用 .NET 做機器學習/深度學習的應用嗎&#xff1f;如果從框架角度&#xff0c;ML.NET / Tensorflow.NET / 不斷在進步的 TorchSharp 通過幾年的發展已經開始穩定&#xff0c;但如果在一些大型項目上&#xff0c;特別…

iOS10 優化APP首次安裝網絡權限提示方案

我剛經歷了一場末日&#xff08;停電&#xff09;&#xff0c;特別是在你想寫文檔的時候。。。 言歸正傳&#xff0c;今天的問題是解決iOS10系統下首次按鈕APP彈出的網絡權限提示所帶來了問題以及優化。 起因 查了相關文章知道由于大陸工信部出臺的新規指出&#xff0c;應用在未…

su命令

從一個用戶切換到另一個用戶&#xff1a;su - ceshi(ceshi是用戶名) 查看當前用戶&#xff1a;whoami 在不切換用戶的情況執行另一個用戶的命令&#xff1a;例&#xff1a;su - -c "touch /tmp/111.txt" admin 若用戶沒有加目錄需要添加家目錄&#xff0c;并更改所有…

C語言基礎知識【數據類型】

C 數據類型1.在 C 語言中&#xff0c;數據類型指的是用于聲明不同類型的變量或函數的一個廣泛的系統。變量的類型決定了變量存儲占用的空間&#xff0c;以及如何解釋存儲的位模式。2.C 中的類型可分為以下幾種&#xff1a;序號 類型與描述1 基本類型&#xff1a;它們是算…

PS批量替換內容

在制作圖片物料的時候&#xff0c;有時會碰到需要制作大量內容格式一致&#xff0c;但部分文字或圖片不同的圖片&#xff0c;這里我們使用PS的變量功能 物料準備&#xff1a;準備好需要替換的圖片和文字&#xff0c;使用excel制作出需要替換的內容&#xff0c;第一行name和pic…

在 .NET 中執行 JavaScript 代碼

你好&#xff0c;這里是 Dotnet 工具箱&#xff0c;定期分享 Dotnet 有趣&#xff0c;實用的工具和組件&#xff0c;希望對您有用&#xff01;Jint 簡介如果您想在您的 .NET 程序中使用 Javascript&#xff0c;那么我推薦您使用 Jint。Jint 是適用于 .NET 的 開源 Javascript 解…

【本周面試題】第5周 - 開發工具相關

待整理轉載于:https://www.cnblogs.com/padding1015/p/10095424.html

JS 返回上一步(退回上一步上一個網頁)

鏈接式&#xff1a; <a href"javascript:history.go(-1)">返回上一步</a> <a href"<%Request.ServerVariables("HTTP_REFERER")%>">返回上一步</a> 按鈕式&#xff1a; <INPUT name"pclog" type&quo…

jmeter多用戶登錄跨線程組操作傳值

項目需求&#xff1a; 需要登錄兩個用戶A、B&#xff0c;用戶A操作完后會通知B&#xff0c;然后B再操作&#xff0c;B操作完結束或者再通知A。 實現思路&#xff1a; 1. 設置兩個線程組Ⅰ、Ⅱ&#xff0c;組Ⅰ添加cookie管理器&#xff0c;里面添加用戶A的操作&#xff1b;組Ⅱ…

手動修改美化7zip圖標 - 附替換文件

手動修改7zip圖標理論知識制作ico圖標文件替換資源重建圖標緩存效果圖替換文件7-Zip的自帶圖標是公認的丑&#xff0c;所以網上有很多7-Zip的圖標美化工具&#xff0c;用的最多的就是 7-Zip Theme Manager&#xff0c;自帶很多主題&#xff0c;但是最近我再使用7zTM修改圖標是卻…

.NET性能優化-復用StringBuilder

在之前的文章中&#xff0c;我們介紹了 dotnet 在字符串拼接時可以使用的一些性能優化技巧。比如&#xff1a;為StringBuilder設置 Buffer 初始大小使用ValueStringBuilder等等 不過這些都多多少少有一些局限性&#xff0c;比如StringBuilder還是會存在new StringBuilder()這樣…

如何使用vue組件搭建網頁并打包發布

vue組件化項目搭建及編譯打包發布引言開發環境開發環境介紹開發環境安裝使用模板創建項目編譯及打包發布引言 最近開始學習Vue&#xff0c;Vue 是一個前端框架&#xff0c;特點是數據綁定和組件化。網上很多教程&#xff0c;數據綁定和組件學習起來也都不困難&#xff0c;但是…

MyBatis 分頁插件 PageHelper

插件官網 簡介&#xff1a; 支持常見的 12 種數據庫。Oracle,MySql,MariaDB,SQLite,DB2,PostgreSQL,SqlServer 等&#xff1b; 支持常見的RowBounds(PageRowBounds)&#xff0c;PageHelper.startPage 方法調用&#xff0c;Mapper 接口參數調用&#xff1b; 獲取maven配置 示例&…

Facebook揭秘其應用測試平臺,并開源核心技術

本周&#xff0c;Facebook讓一群記者參觀了它位于俄勒岡州普賴恩維爾市的數據中心&#xff0c;在這個過程中也展示了他們的一個移動應用測試實驗室&#xff0c;用來測試Facebook app、 Messenger 和Instagram。 目前 這個實驗室總共含有60個機架&#xff0c;每個機架上放置32臺…

責任鏈模式 職責鏈模式 Chain of Responsibility Pattern 行為型 設計模式(十七)

責任鏈模式&#xff08;Chain of Responsibility Pattern&#xff09;職責鏈模式意圖 使多個對象都有機會處理請求&#xff0c;從而避免請求的發送者和接受者之間的耦合關系將這些對象連接成一條鏈&#xff0c;并沿著這條鏈傳遞請求&#xff0c;直到有一個對象處理它為止。責任…

YOLOv7 在 ML.NET 中使用 ONNX 檢測對象

本文介紹如何在 ML.NET 中使用 YOLOv7 的 ONNX 模型來檢測圖像中的對象。什么是 YOLOYOLO&#xff08;You Only Look Once&#xff09;是一種先進的實時目標檢測系統。它是一個在COCO數據集上預訓練的物體檢測架構和模型系列&#xff0c;其版本也是在不斷優化更新。2022年7月&a…