1.背景運作 nohup方式
2.背景運作+開機自啟動 supervisor方式
supervisor是一個守護程序,在這之前要安裝好dotnet對應的SDK,另外也要将咱的服務部署檔案夾放到伺服器上并能夠通過 dotnet **.dll指令正常啟動
(1)首先安裝supervisor,使用yum -y install supervisor 然後回車即可
安裝路徑/usr/bin/supervisord,配置檔案/etc/supervisor.conf
(2)檢視路徑 /etc檔案夾下面是否有supervisor.conf配置檔案,如下圖
如果有配置檔案,可直接進去檢視配置,
(一般是有的,即使這裡沒有也在其他的檔案夾中,可以通過which supervisor.conf指令查找)
如果在/etc路徑下沒有配置檔案則通過指令進行初始化(最好不要手動初始化配置檔案)
(3)檢視并修改supervisor的配置檔案supervisor.conf
注意:鍵盤按下“i”鍵,文檔才能被編輯
編輯完成想要儲存退出時可以按下“Esc”鍵,然後點選:wq進行儲存退出
把supervisord中的user配置項設定為root管理者賬号
把光标拉到配置檔案的最後看到Include的配置項如下圖
表示在檔案夾supervisord.d下的ini格式的檔案都會加載在配置中,可以根據需要把需要監控的程序配置檔案全部放在supervisord.d檔案夾下面
(4)進入/etc/supervisord.d檔案夾下面,通過vim UnifyApi.ini建立守護程序配置檔案
(5)編輯UnifyApi.ini配置檔案内容
[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來查找,如圖
配置檔案編輯完成後,使用supervisorctl reload進行重新加載配置
如果需要監控其他的程序,隻要重複(4)(5)增加一個守護程序的ini配置檔案,再重新加載配置就可以了
到目前為止,咱的NetCore架構的WebApi可以正常在背景跑起來了,關掉遠端連接配接程序視窗,服務也不會關閉了
(6)現在開始就要配置Supervisor開機啟動
systemctl enable supervisord.service
進入目/usr/lib/systemd/system/,并建立supervisord.service檔案
②設定開機啟動
systemctl enable supervisord
systemctl daemon-reload
檢視是否設定了開機啟動 systemctl is-enabled supervisord
檢視開機啟動指令的運作狀态 systemctl status supervisord
③重新開機,測試是否可以開機自啟
經常遇到的問題是開機後服務不能正常啟動,排查問題
(1)systemctl status supervisord,這個正常就說明是程序配置檔案的問題了
(2)supervisorctl status檢視程序是否正常
這個就是supervisor開機啟動程序沒問題,但是守護程序沒有啟動,報不能發現dotnet指令,這說明時配置檔案中command名林中dotnet的絕對路徑配置錯誤