您好,登錄后才能下訂單哦!
這篇文章將為大家詳細(xì)講解有關(guān).net Core 3.0 WebApi如何創(chuàng)建Linux守護(hù)進(jìn)程,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
前言
我們一般可以在Linux服務(wù)器上執(zhí)行 dotnet <app_assembly.dll> 命令來運(yùn)行我們的.net Core WebApi應(yīng)用。但是這樣運(yùn)行起來的應(yīng)用很不穩(wěn)定,關(guān)閉終端窗口之后,應(yīng)用也會停止運(yùn)行。為了讓其可以穩(wěn)定運(yùn)行,我們需要讓它變成系統(tǒng)的守護(hù)進(jìn)程,成為一種服務(wù)一直在系統(tǒng)中運(yùn)行,出現(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=運(yùn)行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)程”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。