一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - ASP.NET教程 - 如何使用pm2守護你的.NET Core應(yīng)用程序詳解

如何使用pm2守護你的.NET Core應(yīng)用程序詳解

2020-06-03 14:42李志強 ASP.NET教程

pm2是nodejs的一個帶有負載均衡功能的應(yīng)用進程管理器的模塊,下面這篇文章主要給大家介紹了關(guān)于如何使用pm2守護你的.NET Core應(yīng)用程序的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下

一.守護進程的前世今生

守護進程,英文名:“daemon",也有守護神的意思。守護進程是一個在后臺運行并且不受任何終端控制的進程,不會隨著會話結(jié)束而退出。諸如 mysql、apache 等這類程序默認就提供了守護進程或者以守護進程的方式工作,我們熟悉的 “mysqld”、"httpd" 等其中的 d 就是 daemon 的意思。比如我們在 Linux 系統(tǒng)上以命令 dotnet xxx.dll 運行 .NET Core 應(yīng)用程序時,如果我們結(jié)束會話,那么我們的程序?qū)Y(jié)束運行。其原因是 Linux 系統(tǒng)中有一個信號機制,進程可以通過一系列信號進行通信,當(dāng)用戶結(jié)束會話時,會向當(dāng)前會話的子進程發(fā)送一個 HUP 信號,一般情況下當(dāng)前會話的子進程收到HUP信號以后就會退出自己。 這時我們就需要一個守護進程來管控我們的 .NET Core 應(yīng)用程序進程。

二.讓進程后臺運行

Linux 下讓進程后臺方式很多,舉栗子:Supervisor、Screen、nohup 命令 等等。Supervisor 是自己創(chuàng)建了一個守護進程,然后讓我們的應(yīng)用程序進程成為其子進程,通過這種管控方式讓我們的應(yīng)用程序后臺運行。nohup 顧名思義,就是不向會話進程發(fā)送hup信號。

在這里我就搬出本文的主角 pm2,通過 pm2 來讓進程后臺運行。

三. pm2介紹

pm2 從名字上和我們平時在生活中接觸到的 pm2.5 有點像,不過他們可不是一個東西。做 nodejs 開發(fā)的童鞋可能對 pm2 比較熟悉,pm2 是一個高級nodejs進程管理工具。

如何使用pm2守護你的.NET Core應(yīng)用程序詳解

看到這里,可能有童鞋會有疑問,nodejs進程管理工具怎么管理 .NET Core 進程?博主經(jīng)過長期的在 Linux 下的摸爬滾打,最終發(fā)現(xiàn)使用pm2來守護 .NET Core 進程完全沒有問題,除了 nodejs 其他的很多程序都是可以的。而且無需繁瑣的配置,安裝、使用、管理進程都非常簡單,這是我選擇它的主要原因。

這里需要說明一下是使用 pm2 來讓進程后臺運行,因為如果不是 nodejs 程序, pm2的一些為nodejs準(zhǔn)備的功能可能是無法使用的,但是對于我們守護 .NET Core 應(yīng)用程序足夠了。

四.pm2的安裝以及使用

4.1 安裝

4.1.1 安裝 nodejs

使用pm2需要安裝nodejs,這個網(wǎng)上很多資料,就不再本文詳細說明了,我前面寫過一篇在 Centos 7下安裝的文章,傳送門。

4.1.2 安裝 pm2

?
1
npm install pm2 -g

就一句話,是不是很簡單。安裝成功以后使用命令 pm2來檢查是否安裝成功,你會看到如下輸出:

-------------

__/\\\\\\\\\\\\\____/\\\\____________/\\\\____/\\\\\\\\\_____
_\/\\\/////////\\\_\/\\\\\\________/\\\\\\__/\\\///////\\\___
_\/\\\_______\/\\\_\/\\\//\\\____/\\\//\\\_\///______\//\\\__
_\/\\\\\\\\\\\\\/__\/\\\\///\\\/\\\/_\/\\\___________/\\\/___
_\/\\\/////////____\/\\\__\///\\\/___\/\\\________/\\\//_____
_\/\\\_____________\/\\\____\///_____\/\\\_____/\\\//________
_\/\\\_____________\/\\\_____________\/\\\___/\\\/___________
_\/\\\_____________\/\\\_____________\/\\\__/\\\\\\\\\\\\\\\_
_\///______________\///______________\///__\///////////////__


Runtime Edition

PM2 is a Production Process Manager for Node.js applications
with a built-in Load Balancer.

Start and Daemonize any application:
$ pm2 start app.js

Load Balance 4 instances of api.js:
$ pm2 start api.js -i 4

Monitor in production:
$ pm2 monitor

Make pm2 auto-boot at server restart:
$ pm2 startup

To go further checkout:
http://pm2.io/


-------------

usage: pm2 [options] <command>

pm2 -h, --help all available commands and options
pm2 examples display pm2 usage examples
pm2 <command> -h help on a specific command

Access pm2 files in ~/.pm2

4.2 使用

4.2.1 常用命令

 

命令 說明
pm2 startup 設(shè)置pm2開機自啟動
pm2 unstartup 移除pm2開機自啟動
pm2 save 保存當(dāng)前進程開機自啟動
pm2 start <進程啟動命令> [--name <進程名>] 啟動應(yīng)用程序
pm2 list 顯示所有進程狀態(tài)
pm2 monit 監(jiān)控進程
pm2 logs [進程id或名字] 顯示進程日志
pm2 stop [all] 停止[所有]進程
pm2 restart [all] 重啟[所有]進程
pm2 delete [<進程名或者id>,all] 刪除指定[所有]進程
pm2 info [進程id或名字] 查看應(yīng)用程序信息

官方文檔:http://pm2.keymetrics.io/docs/usage/quick-start/

五. 使用 pm2 守護 ASP.NET Core 應(yīng)用程序

5.1 創(chuàng)建一個 webapi 項目

?
1
2
3
4
5
6
7
8
# 創(chuàng)建項目
dotnet new webapi --no-https -o testwebapi
# 發(fā)布項目
cd testwebapi/
dotnet publish -c Release
cd bin/Release/netcoreapp2.1/publish
# 運行項目
dotnet testwebapi.dll

運行成功會有如下輸出:

如何使用pm2守護你的.NET Core應(yīng)用程序詳解

5.2 使用pm2守護

5.2.1 啟動

結(jié)束我們剛剛運行的程序,就在我們剛剛的目錄執(zhí)行下面的命令:

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

執(zhí)行成功:

如何使用pm2守護你的.NET Core應(yīng)用程序詳解

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

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

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

如何使用pm2守護你的.NET Core應(yīng)用程序詳解

5.2.2 查看日志

?
1
pm2 logs testwebapi

如何使用pm2守護你的.NET Core應(yīng)用程序詳解

5.2.3 查看應(yīng)用程序信息

?
1
pm2 info testwebapi

如何使用pm2守護你的.NET Core應(yīng)用程序詳解

5.2.4 監(jiān)控應(yīng)用程序

?
1
pm2 monit testwebapi

如何使用pm2守護你的.NET Core應(yīng)用程序詳解

5.2.3 重啟策略

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

測試:

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

如何使用pm2守護你的.NET Core應(yīng)用程序詳解

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

通過 pm2 list查詢應(yīng)用程序重啟次數(shù)為0:

如何使用pm2守護你的.NET Core應(yīng)用程序詳解

訪問 api 觸發(fā)異常退出:

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

再次通過 pm2 list命令查詢可以發(fā)現(xiàn)重啟了:

如何使用pm2守護你的.NET Core應(yīng)用程序詳解

六.結(jié)束

pm2 這個工具相對于 Supervisor 和 nohup 來說,對于Supervisor,沒有配置,不用輸很長的命令;對于 nohup 管理進程方便。歡迎大家與我交流。

pm2官方文檔

CentOS 7 源碼編譯安裝 NodeJS by 曉晨Master

好了,以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對服務(wù)器之家的支持。

原文鏈接:https://www.cnblogs.com/stulzq/p/9775973.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 色花堂国产精品首页第一页 | 爱色成人网 | 三级网站午夜三级 | 精品久久国产 | 91精品综合国产在线观看 | 日本成人免费在线视频 | 国产一二区视频 | 秀婷程仪公欲息肉婷在线观看 | 网红思瑞一区二区三区 | 国产成+人+综合+亚洲不卡 | 日韩欧美中文字幕出 | 按摩椅play啊太快了h | 奇米影视奇米色777欧美 | aaa级黄色片| 四虎影音先锋 | 亚洲国产区 | 果冻传媒九一制片厂网站 | 天天爽天天操 | 久久这里都是精品 | 78成人网 | 日韩一区二区三区精品 | 1769国产精品免费视频 | 麻豆网站在线看 | 成人尤物| 亚洲H成年动漫在线观看不卡 | 2021麻豆剧果冻传媒入口永久 | 女主被当众调教虐np | 91综合在线视频 | 99在线精品免费视频九九视 | 国产伦码精品一区二区 | 视频大全在线观看网址 | a级毛片毛片免费观看永久 a级黄色片免费 | 日噜噜 | 91啦在线播放 | 国内剧情麻豆 | 日本在线视频免费观看 | 午夜五月天 | 欧美精品v欧洲高清 | www在线观看视频免费 | yy6080欧美三级理论 | 国产成人精品一区二三区在线观看 |