.net Core 3.0 WebApi 創(chuàng)建Linux守護(hù)進(jìn)程的方法
前言
我們一般可以在Linux服務(wù)器上執(zhí)行 dotnet <app_assembly.dll> 命令來(lái)運(yùn)行我們的.net Core WebApi應(yīng)用。但是這樣運(yùn)行起來(lái)的應(yīng)用很不穩(wěn)定,關(guān)閉終端窗口之后,應(yīng)用也會(huì)停止運(yùn)行。為了讓其可以穩(wěn)定運(yùn)行,我們需要讓它變成系統(tǒng)的守護(hù)進(jìn)程,成為一種服務(wù)一直在系統(tǒng)中運(yùn)行,出現(xiàn)異常時(shí)也能重新啟動(dòng)。
Linux系統(tǒng)有自己的守護(hù)進(jìn)程管理工具 Systemd 。systemd 是內(nèi)核啟動(dòng)后的第一個(gè)用戶進(jìn)程,PID 為1,是所有其它用戶進(jìn)程的父進(jìn)程。它直接與內(nèi)核交互,性能出色,可以提供用于啟動(dòng)、停止和管理進(jìn)程的許多強(qiáng)大的功能。我們完全可以將程序交給 Systemd ,讓系統(tǒng)統(tǒng)一管理,成為真正意義上的系統(tǒng)服務(wù)。
systemctl 用于管理 systemd 的行為,替換之前的 sysvinit 和 upstart。
創(chuàng)建服務(wù)文件
創(chuàng)建服務(wù)定義文件:
vim /etc/systemd/system/qf-intecabinet.service
以下是應(yīng)用的一個(gè)示例服務(wù)文件:
[Unit] Description=運(yùn)行Qf.InteCabinet服務(wù) [Service] WorkingDirectory=/opt/InteCabinet # 依賴環(huán)境,可以指定多個(gè) ExecStart=/usr/bin/dotnet /opt/InteCabinet/Qf.InteCabinet.WebApi.dll Restart=always # Restart service after 10 seconds if the dotnet service crashes: RestartSec=10 KillSignal=SIGINT SyslogIdentifier=qf-intecabinet User=root # 管理服務(wù)的用戶,用戶必須存在并且擁有正確應(yīng)用文件的所有權(quán) Environment=ASPNETCORE_ENVIRONMENT=Production # 環(huán)境變量 Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false [Install] WantedBy=multi-user.target # 該服務(wù)所在的Target
管理服務(wù)
保存該文件并啟用該服務(wù)
systemctl enable qf-intecabinet.service
啟動(dòng)該服務(wù)
systemctl start qf-intecabinet.service
查看服務(wù)狀態(tài)
systemctl status qf-intecabinet.service
查看日志
journalctl -fu qf-intecabinet.service
使用時(shí)間選項(xiàng)(如 --since today、--until 1 hour ago)或這些選項(xiàng)的組合可以減少返回的條目數(shù)
journalctl -fu qf-intecabinet.service --since "2020-01-01" --until "2020-03-01 12:00"
關(guān)閉服務(wù)
systemctl stop qf-intecabinet.service
參考資料
到此這篇關(guān)于.net Core 3.0 WebApi 創(chuàng)建Linux守護(hù)進(jìn)程的方法的文章就介紹到這了,更多相關(guān).net Core WebApi創(chuàng)建守護(hù)進(jìn)程內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C#反射實(shí)例學(xué)習(xí)及注意內(nèi)容
C#反射的入門學(xué)習(xí)首先要明白C#反射提供了封裝程序集、模塊和類型的對(duì)象等等需要的朋友可以參考下2012-12-12
建立自定義的數(shù)據(jù)驅(qū)動(dòng)的本地化資源provider
本文探討了自定義的本地化資源提供者.如果想用一個(gè)可替代系統(tǒng)的資源處理方案,例如把所有的資源放入數(shù)據(jù)庫(kù)中,而不是放在分散的資源文件里,你可以自定義一個(gè)resource provider.2010-06-06
Ubuntu16.04系統(tǒng)搭建.Net Core開(kāi)發(fā)環(huán)境
本文詳細(xì)講解了Ubuntu系統(tǒng)搭建.Net Core開(kāi)發(fā)環(huán)境的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-02-02
ASP.NET編程時(shí)遇到GridView的一個(gè)問(wèn)題 激發(fā)了未處理的事件"PageIndexChanging&q
今天在寫代碼的時(shí)候遇到一個(gè)很郁悶的問(wèn)題,就是在ASP.NET中通過(guò)編程創(chuàng)建SqlDataSource然后綁定給GridView,在啟用了 GridView自身的分頁(yè)功能之后,點(diǎn)擊分頁(yè)頁(yè)碼會(huì)出現(xiàn)錯(cuò)誤提示:GridView“GridView1”激發(fā)了未處理的事件"PageIndexChanging"……2010-04-04
asp.net C#實(shí)現(xiàn)解壓縮文件的方法
這篇文章主要介紹了asp.net C#實(shí)現(xiàn)解壓縮文件的方法,分別講述了三種不同的實(shí)現(xiàn)方法,是非常實(shí)用的技巧,需要的朋友可以參考下2014-11-11
ASP.NET筆記之文章發(fā)布管理小系統(tǒng)案例
本篇文章小編為大家介紹,ASP.NET筆記之文章發(fā)布管理小系統(tǒng)案例。需要的朋友參考下2013-04-04
asp.net下使用jQuery.AutoComplete完成仿淘寶商品搜索自動(dòng)完成功能(改進(jìn)了鍵盤上下選擇體驗(yàn))
其實(shí)這個(gè)已經(jīng)是個(gè)比較常見(jiàn)的功能了,網(wǎng)上也有很多人做過(guò)這個(gè)了,但是很多都是僅僅做了一些基本的網(wǎng)頁(yè)上自動(dòng)完成功能,沒(méi)有與具體的數(shù)據(jù)庫(kù)進(jìn)行聯(lián)動(dòng),我今天所介紹這個(gè)自動(dòng)完成的就是我修改的jQuery.AutoComplete+數(shù)據(jù)庫(kù)的一個(gè)解決方案。2010-05-05
理解ASP.NET?Core?錯(cuò)誤處理機(jī)制(Handle?Errors)
這篇文章主要介紹了理解ASP.NET?Core?錯(cuò)誤處理(Handle?Errors)?,在這里需要注意的是,與“異常處理”有關(guān)的中間件,一定要盡早添加,這樣,它可以最大限度的捕獲后續(xù)中間件拋出的未處理異常。感興趣的朋友跟隨小編一起看看吧2021-11-11

