近日在學習通過linux部署.netCore,通過Supervisor的守護進程進行服務自動運行,重啟。通過網上搜索相關資料,初始配置時,搞的一頭霧水,把個人遇到的一些問題整理如下:
第一步:通過命令進行安裝Supervisor守護進程,我用的是centos系統
yum install supervisor
安裝完成后,在/etc 下生成兩個文件,一個是supervisord.conf 配置文件,一個是supervisord.d文件夾,查看配置文件supervisord.conf ,最后一行添加files=/etc/supervisor/conf.d/TestNetCore.conf ,這個可以自定義,主要就是包含用戶項目配置文件
TestNetCore.conf 文件內容
[program:HelloWebApp]
command=dotnet HelloWebApp.dll #要執行的命令
directory=/home/yxd/Workspace/publish #命令執行的目錄
environment=ASPNETCORE__ENVIRONMENT=Production #環境變量
user=root #進程執行的用戶身份
stopsignal=INT
autostart=true #是否自動啟動
autorestart=true #是否自動重啟
startsecs=1 #自動重啟間隔
stderr_logfile=/var/log/HelloWebApp.err.log#標准錯誤日志
stdout_logfile=/var/log/HelloWebApp.out.log #標准輸出日志
注意:每句話后面不能帶有分號“;”,我復制時忽略了這一點,自動帶上分號后,服務進程運行時,提示dotnet 失敗
保存退出:wq
重新運行supervisord 命令:systemctl restart supervisord ,查看其狀態命令:systemctl status supervisord
以上初步配置成功,監守服務進程配置結束,接下來配置開機自啟動,服務器宕機重啟后,服務進程自動運行,無需人為干預
1.在指定目錄下創建文件supervisord.service
vi /usr/lib/systemd/system/supervisord.service 打開后編輯一下內容
[Unit]
Description=Supervisor daemon
[Service]
Type=forking
ExecStart=/usr/bin/supervisord -c /etc/supervisor/supervisord.conf
ExecStop=/usr/bin/supervisorctl shutdown
ExecReload=/usr/bin/supervisorctl reload
KillMode=process
Restart=on-failure
RestartSec=42s
[Install]
WantedBy=multi-user.target
保存退出
執行以下命令:
systemctl enable supervisord
提示:
Created symlink from /etc/systemd/system/multi-user.target.wants/supervisord.service to /usr/lib/systemd/system/supervisord.service.
驗證是否為開機啟動:
systemctl is-enabled supervisord
提示:
enabled
表示設置成功!
至此,創建supervisor守護進程完畢。
參考:https://www.cnblogs.com/Hai--D/p/5820718.html