linux centos Supervisor守護.netcore進程安裝配置

 場景:當部署完.netcore程序後 使用dotnet xx.dll 後能夠運行,但關閉shell或隔斷時間會自動斷開,此時部署的.netcore程序就不能訪問了,此時須要用到Supervisor了html

 Supervisor(http://supervisord.org/)是用Python開發的一個client/server服務,是Linux/Unix系統下的一個進程管理工具,不支持Windows系統。它能夠很方便的監聽、啓動、中止、重啓一個或多個進程。用Supervisor管理的進程,當一個進程意外被殺死,supervisort監聽到進程死後,會自動將它從新拉起,很方便的作到進程自動恢復的功能,再也不須要本身寫shell腳原本控制。python

一、安裝Pythonweb

yum install python-setuptools
easy_install supervisor

二、新建supervisor文件夾shell

mkdir /etc/supervisor

三、在該目錄下,生成supervisord.conf文件socket

echo_supervisord_conf > /etc/supervisor/supervisord.conf

四、新建conf.d文件夾工具

mkdir /etc/supervisor/conf.d

此時的目錄結構:spa

 

 

五、編輯supervisord.conf文件,在文件中末尾添加.net

[include]
files=conf.d/*.conf

 

 

 

六、在conf.d中添加文件test.confrest

文件內容:日誌

[program:testservice] ;程序名稱,終端控制時須要的標識
command=dotnet test2.dll ; 運行程序的命令
directory=/home/website/test/ ; 命令執行的目錄
autorestart=true ; 程序意外退出是否自動重啓
stderr_logfile=/var/log/testservice.err.log ; 錯誤日誌文件
stdout_logfile=/var/log/testservice.out.log ; 輸出日誌文件
environment=ASPNETCORE_ENVIRONMENT=Production ; 進程環境變量
user=root ; 進程執行的用戶身份
stopsignal=INT
startsecs=1 ; 自動重啓間隔

七、指定supervisor配置文件

supervisord -c /etc/supervisor/supervisord.conf

八、Supervisor開機自啓動

在目錄/usr/lib/systemd/system 中新建文件supervisord.service

 

 

文件內容:

#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 daemon-reload

  重啓supervisor服務
   $ supervisorctl reread
   若是重啓的時候報錯: 
   error: <class 'socket.error'>, [Errno 111] Connection refused: file: /usr/lib64/python2.6/socket.py line: 567
   則說明服務還沒有啓動,先啓動便可:
   sudo supervisord -c /etc/supervisor/supervisord.conf
   sudo supervisorctl -c /etc/supervisor/supervisord.conf
   若是修改了 /etc/supervisord.conf ,須要執行 supervisorctl reload 來從新加載配置文件,不然不會生效。

 

十、設置服務開機啓動

systemctl enable supervisor.service

 十一、驗證一下是否爲開機啓動

systemctl is-enabled supervisord

 十二、啓動服務

systemctl start supervisor.service

至此完成

 

參考文章:

https://www.cnblogs.com/hobinly/p/7382038.html

https://my.oschina.net/lichaoqiang/blog/1861791

https://www.cnblogs.com/sundahua/p/9149692.html

https://blog.csdn.net/chivalrousli/article/details/60324140

相關文章
相關標籤/搜索