.net Core 3.0 WebApi 創(chuàng)建Linux守護(hù)進(jìn)程的方法
前言
我們一般可以在Linux服務(wù)器上執(zhí)行 dotnet <app_assembly.dll> 命令來運行我們的.net Core WebApi應(yīng)用。但是這樣運行起來的應(yīng)用很不穩(wěn)定,關(guān)閉終端窗口之后,應(yīng)用也會停止運行。為了讓其可以穩(wěn)定運行,我們需要讓它變成系統(tǒng)的守護(hù)進(jìn)程,成為一種服務(wù)一直在系統(tǒng)中運行,出現(xiàn)異常時也能重新啟動。
Linux系統(tǒng)有自己的守護(hù)進(jìn)程管理工具 Systemd 。systemd 是內(nèi)核啟動后的第一個用戶進(jìn)程,PID 為1,是所有其它用戶進(jìn)程的父進(jìn)程。它直接與內(nèi)核交互,性能出色,可以提供用于啟動、停止和管理進(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)用的一個示例服務(wù)文件:
[Unit] Description=運行Qf.InteCabinet服務(wù) [Service] WorkingDirectory=/opt/InteCabinet # 依賴環(huán)境,可以指定多個 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
啟動該服務(wù)
systemctl start qf-intecabinet.service
查看服務(wù)狀態(tài)
systemctl status qf-intecabinet.service
查看日志
journalctl -fu qf-intecabinet.service
使用時間選項(如 --since today、--until 1 hour ago)或這些選項的組合可以減少返回的條目數(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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
建立自定義的數(shù)據(jù)驅(qū)動的本地化資源provider
本文探討了自定義的本地化資源提供者.如果想用一個可替代系統(tǒng)的資源處理方案,例如把所有的資源放入數(shù)據(jù)庫中,而不是放在分散的資源文件里,你可以自定義一個resource provider.2010-06-06
Ubuntu16.04系統(tǒng)搭建.Net Core開發(fā)環(huán)境
本文詳細(xì)講解了Ubuntu系統(tǒng)搭建.Net Core開發(fā)環(huán)境的方法,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-02-02
ASP.NET編程時遇到GridView的一個問題 激發(fā)了未處理的事件"PageIndexChanging&q
今天在寫代碼的時候遇到一個很郁悶的問題,就是在ASP.NET中通過編程創(chuàng)建SqlDataSource然后綁定給GridView,在啟用了 GridView自身的分頁功能之后,點擊分頁頁碼會出現(xiàn)錯誤提示:GridView“GridView1”激發(fā)了未處理的事件"PageIndexChanging"……2010-04-04
ASP.NET筆記之文章發(fā)布管理小系統(tǒng)案例
本篇文章小編為大家介紹,ASP.NET筆記之文章發(fā)布管理小系統(tǒng)案例。需要的朋友參考下2013-04-04
asp.net下使用jQuery.AutoComplete完成仿淘寶商品搜索自動完成功能(改進(jìn)了鍵盤上下選擇體驗)
其實這個已經(jīng)是個比較常見的功能了,網(wǎng)上也有很多人做過這個了,但是很多都是僅僅做了一些基本的網(wǎng)頁上自動完成功能,沒有與具體的數(shù)據(jù)庫進(jìn)行聯(lián)動,我今天所介紹這個自動完成的就是我修改的jQuery.AutoComplete+數(shù)據(jù)庫的一個解決方案。2010-05-05
理解ASP.NET?Core?錯誤處理機(jī)制(Handle?Errors)
這篇文章主要介紹了理解ASP.NET?Core?錯誤處理(Handle?Errors)?,在這里需要注意的是,與“異常處理”有關(guān)的中間件,一定要盡早添加,這樣,它可以最大限度的捕獲后續(xù)中間件拋出的未處理異常。感興趣的朋友跟隨小編一起看看吧2021-11-11

