日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 综合教程 >内容正文

综合教程

ASP.ENT Core Linux 下 为 donet创建守护进程(转载)

發(fā)布時(shí)間:2023/12/31 综合教程 29 生活家
生活随笔 收集整理的這篇文章主要介紹了 ASP.ENT Core Linux 下 为 donet创建守护进程(转载) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

原文地址:http://www.cnblogs.com/savorboard/p/dotnetcore-supervisor.html

前言

在上篇文章中介紹了如何在 Docker 容器中部署我們的 asp.net core 應(yīng)用程序,本篇主要是怎么樣為我們?cè)?Linux 或者 macOs 中部署的 dotnet 程序創(chuàng)建一個(gè)守護(hù)進(jìn)程,來(lái)保證我們的程序在異常或者是電腦重啟的時(shí)候仍然能夠正常訪問。

如果你以后用準(zhǔn)備使用 asp.net core來(lái)開發(fā)項(xiàng)目的話,程序并且部署到 Linux 上的話,那么此篇文章你值得收藏。
如果你覺得對(duì)你有幫助的話,不妨點(diǎn)個(gè)【推薦】。

目錄

什么是守護(hù)進(jìn)程
Supervisor 介紹
Supervisor 安裝
Supervisor 配置,常用命令
Supervisor UI管理臺(tái)

什么是守護(hù)進(jìn)程

在linux或者unix操作系統(tǒng)中,守護(hù)進(jìn)程(Daemon)是一種運(yùn)行在后臺(tái)的特殊進(jìn)程,它獨(dú)立于控制終端并且周期性的執(zhí)行某種任務(wù)或等待處理某些發(fā)生的事件。由于在linux中,每個(gè)系統(tǒng)與用戶進(jìn)行交流的界面稱為終端,每一個(gè)從此終端開始運(yùn)行的進(jìn)程都會(huì)依附于這個(gè)終端,這個(gè)終端被稱為這些進(jìn)程的控制終端,當(dāng)控制終端被關(guān)閉的時(shí)候,相應(yīng)的進(jìn)程都會(huì)自動(dòng)關(guān)閉。但是守護(hù)進(jìn)程卻能突破這種限制,它脫離于終端并且在后臺(tái)運(yùn)行,并且它脫離終端的目的是為了避免進(jìn)程在運(yùn)行的過程中的信息在任何終端中顯示并且進(jìn)程也不會(huì)被任何終端所產(chǎn)生的終端信息所打斷。它從被執(zhí)行的時(shí)候開始運(yùn)轉(zhuǎn),直到整個(gè)系統(tǒng)關(guān)閉才退出。

此處的創(chuàng)建守護(hù)進(jìn)程,是指發(fā)布在Linux上 asp.net core 程序的dotnet xxx.dll命令的宿主進(jìn)程創(chuàng)建一個(gè)守護(hù)進(jìn)程。

在 Linux 上有很多可以管理進(jìn)程的工具,我們使用 Supervisor 來(lái)做這個(gè)事情。
原因有兩點(diǎn):
1、它是微軟官方文檔推薦的,降低學(xué)習(xí)成本。
2、它并不一定是最好的,但一定是文檔最全的。

Supervisor 介紹

Supervisor是采用 Python(2.4+) 開發(fā)的,它是一個(gè)允許用戶管理 基于 Unix 系統(tǒng)進(jìn)程的 Client/Server 系統(tǒng),提供了大量功能來(lái)實(shí)現(xiàn)對(duì)進(jìn)程的管理。

官方文檔:http://supervisord.org/

Supervisor 安裝

在 masOS 中直接使用brew工具進(jìn)行安裝即可:
brew install supervisor

在 linux 中使用以下命令進(jìn)行安裝:

ubuntu
sudo apt-get install supervisor

centos
yum install supervisor

python
pip install supervosor
easy_install supervisor

安裝完成之后:

mac:~ yangxiaodong$ brew install supervisor
Warning: supervisor-3.2.1 already installed

Supervisor 配置,常用命令

安裝完成之后,在/ect/supervisor/confg.d/目錄下新建一個(gè)配置文件(touch HelloWebApp.conf),取名為HelloWebApp.conf

打開HelloWebApp.conf (vim HelloWebApp.conf),寫入如下命令:

[program:HelloWebApp]
command=dotnet HelloWebApp.dll  #要執(zhí)行的命令
directory=/home/yxd/Workspace/publish #命令執(zhí)行的目錄
environment=ASPNETCORE__ENVIRONMENT=Production #環(huán)境變量
user=www-data  #進(jìn)程執(zhí)行的用戶身份
stopsignal=INT
autostart=true #是否自動(dòng)啟動(dòng)
autorestart=true #是否自動(dòng)重啟
startsecs=1 #自動(dòng)重啟間隔
stderr_logfile=/var/log/HelloWebApp.err.log #標(biāo)準(zhǔn)錯(cuò)誤日志
stdout_logfile=/var/log/HelloWebApp.out.log #標(biāo)準(zhǔn)輸出日志

配置好以后 (:wq保存退出),需要重新加載一下配置

sudo supervisorctl shutdown && sudo supervisord -c /etc/supervisor/supervisord.conf

或者你可以直接重啟 Supervisor:

sudo service supervisor stop
sudo service supervisor start

如果啟動(dòng)的時(shí)候報(bào)錯(cuò),可以打開位于/etc/log/supervisor/supervisord.log文件來(lái)查看具體的日志。

其中dotnet 命令輸出的日志文件分別為位于

/var/log/HelloWebApp.err.log
/var/log/HelloWebApp.out.log

在這些文件里面你可以查看程序中的異常信息或者是運(yùn)行信息。

打開瀏覽器,輸入http://localhost:5000發(fā)現(xiàn)已經(jīng)可以瀏覽了。

Supervisor 常用命令

supervisorctl shutdown #關(guān)閉所有任務(wù)
supervisorctl stop|start program_name
supervisorctl status #查看所有任務(wù)狀態(tài)

Supervisor UI 管理臺(tái)

Supervisor 默認(rèn)給我們提供了一個(gè)圖形界面來(lái)供我們管理進(jìn)程和任務(wù),在 macOS 中默認(rèn)配置的有,但是在 Linux 中我們需要手動(dòng)開啟一下。

打開位于/etc/supervisor/supervisord.conf文件,添加inet_http_server 節(jié)點(diǎn)

然后就可以通過界面來(lái)查看運(yùn)行的進(jìn)程了:

測(cè)試一下

最后,我們測(cè)試一下是否會(huì)自動(dòng)重啟,開機(jī)自動(dòng)運(yùn)行?

1、進(jìn)程管理中干掉dot net ,發(fā)現(xiàn)可以重新啟動(dòng)。以下是日志:

2016-07-09 12:24:18,626 INFO spawned: 'HelloWebApp' with pid 1774
2016-07-09 12:24:19,766 INFO success: HelloWebApp entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2016-07-09 12:27:43,208 INFO exited: HelloWebApp (exit status 0; expected)
2016-07-09 12:27:44,223 INFO spawned: 'HelloWebApp' with pid 3687
2016-07-09 12:27:45,243 INFO success: HelloWebApp entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)

2、重啟機(jī)器,發(fā)現(xiàn)可以自動(dòng)運(yùn)行。

總結(jié)

以上是生活随笔為你收集整理的ASP.ENT Core Linux 下 为 donet创建守护进程(转载)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。