天天看點

CentOS部署Netcore WebAPI

1.背景運作 nohup方式

CentOS部署Netcore WebAPI
CentOS部署Netcore WebAPI

2.背景運作+開機自啟動 supervisor方式

supervisor是一個守護程序,在這之前要安裝好dotnet對應的SDK,另外也要将咱的服務部署檔案夾放到伺服器上并能夠通過 dotnet **.dll指令正常啟動

(1)首先安裝supervisor,使用yum -y install supervisor 然後回車即可

安裝路徑/usr/bin/supervisord,配置檔案/etc/supervisor.conf

(2)檢視路徑 /etc檔案夾下面是否有supervisor.conf配置檔案,如下圖

CentOS部署Netcore WebAPI
CentOS部署Netcore WebAPI

如果有配置檔案,可直接進去檢視配置,

(一般是有的,即使這裡沒有也在其他的檔案夾中,可以通過which supervisor.conf指令查找)

如果在/etc路徑下沒有配置檔案則通過指令進行初始化(最好不要手動初始化配置檔案)

(3)檢視并修改supervisor的配置檔案supervisor.conf

CentOS部署Netcore WebAPI

注意:鍵盤按下“i”鍵,文檔才能被編輯

編輯完成想要儲存退出時可以按下“Esc”鍵,然後點選:wq進行儲存退出

把supervisord中的user配置項設定為root管理者賬号

CentOS部署Netcore WebAPI

 把光标拉到配置檔案的最後看到Include的配置項如下圖

CentOS部署Netcore WebAPI

表示在檔案夾supervisord.d下的ini格式的檔案都會加載在配置中,可以根據需要把需要監控的程序配置檔案全部放在supervisord.d檔案夾下面

(4)進入/etc/supervisord.d檔案夾下面,通過vim UnifyApi.ini建立守護程序配置檔案

CentOS部署Netcore WebAPI

(5)編輯UnifyApi.ini配置檔案内容

CentOS部署Netcore WebAPI

[program:UnifyApi]

directory=/usr/abs/UnifyApi.Host/

command=/root/dotnet/dotnet /usr/abs/UnifyApi.Host/UnifyApi.dll

environment=ASPNETCORE_ENVIRONMENT=Production

user=root

autostart=true

autorestart=true

startsecs=2

startretries=5

stopsignal=INT

stderr_logfile=/usr/abs/dotnet.err.log

stdout_logfile=/usr/abs/dotnet.out.log

一定要注意:command指令後面跟着的dotnet一定要dotnet的絕對路徑位置,如果不确定dotnet具體的安裝位置,可以回到根目錄cd /通過指令which dotnet來查找,如圖

CentOS部署Netcore WebAPI

配置檔案編輯完成後,使用supervisorctl reload進行重新加載配置

如果需要監控其他的程序,隻要重複(4)(5)增加一個守護程序的ini配置檔案,再重新加載配置就可以了

到目前為止,咱的NetCore架構的WebApi可以正常在背景跑起來了,關掉遠端連接配接程序視窗,服務也不會關閉了

CentOS部署Netcore WebAPI

(6)現在開始就要配置Supervisor開機啟動

systemctl enable supervisord.service

進入目/usr/lib/systemd/system/,并建立supervisord.service檔案

CentOS部署Netcore WebAPI
CentOS部署Netcore WebAPI

②設定開機啟動

systemctl enable supervisord

systemctl daemon-reload

檢視是否設定了開機啟動 systemctl is-enabled supervisord

檢視開機啟動指令的運作狀态 systemctl status supervisord

③重新開機,測試是否可以開機自啟

經常遇到的問題是開機後服務不能正常啟動,排查問題

(1)systemctl status supervisord,這個正常就說明是程序配置檔案的問題了

(2)supervisorctl status檢視程序是否正常

CentOS部署Netcore WebAPI

這個就是supervisor開機啟動程序沒問題,但是守護程序沒有啟動,報不能發現dotnet指令,這說明時配置檔案中command名林中dotnet的絕對路徑配置錯誤

繼續閱讀