網站首頁 編程語言 正文
介紹supervisor
Supervisor是用Python開發的一個client/server服務,是Linux/Unix系統下的一個進程管理工具,不支持Windows系統。它可以很方便的監聽、啟動、停止、重啟一個或多個進程。用Supervisor管理的進程,當一個進程意外被殺死,supervisort監聽到進程死后,會自動將它重新拉起,很方便的做到進程自動恢復的功能,不再需要自己寫shell腳本來控制。
1、執行下列命令安裝supervisor
wget https://mirrors.tuna.tsinghua.edu.cn/epel/epel-release-latest-7.noarch.rpm rpm -ivh epel-release-latest-7.noarch.rpm yum install supervisor -y
2、安裝完成之后,我們到配置目錄去添加兩個配置文件
文件名可以自定義 ,因為我要部署webUI和webAPI兩個應用程序,所以新建了兩個配置文件
cd /etc/supervisord.d vi WebApplication.WebUI.ini vi WebApplication.WebAPI.ini
WebApplication.WebUI.ini配置文件
# 冒號后面為應用名稱 [program:WebApplication.WebUI] # 應用啟動命令,需要dotnet的完整路徑 command=dotnet WebApplication.WebUI.dll --urls http://0.0.0.0:8888 # 進程名稱 process_name=%(program_name)s # 應用啟動的目錄,否則應用會報找不到文件的錯誤 directory=/data/apps/WebApplication.WebUI/ # .net core 應用環境變量,表明是哪個環境 environment=ASPNETCORE_ENVIRONMENT=Development # 執行用戶 user=root stopsignal=INT # 掉線是否自動重啟 autostart=true autorestart=true startsecs=3 priority=1 # 日志輸出路徑,該路徑自定義(路徑不存在需要手動創建文件目錄) stderr_logfile=/data/logs/supervisor/log/%(program_name)s_error.log stderr_logfile_maxbytes=50MB stderr_logfile_backups=10 # 日志輸出路徑,該路徑自定義(路徑不存在需要手動創建文件目錄) stdout_logfile=/data/logs/supervisor/log/%(program_name)s_error.log stdout_logfile_maxbytes=50MB stdout_logfile_backups=10
WebApplication.WebAPI.ini配置文件
# 冒號后面為應用名稱 [program:WebApplication.WebAPI] # 應用啟動命令,需要dotnet的完整路徑 command=dotnet WebApplication.WebAPI.dll --urls http://0.0.0.0:7777 # 進程名稱 process_name=%(program_name)s # 應用啟動的目錄,否則應用會報找不到文件的錯誤 directory=/data/apps/WebApplication.WebAPI/ # .net core 應用環境變量,表明是哪個環境 environment=ASPNETCORE_ENVIRONMENT=Development # 執行用戶 user=root stopsignal=INT # 掉線是否自動重啟 autostart=true autorestart=true startsecs=3 priority=1 # 日志輸出路徑,該路徑自定義(路徑不存在需要手動創建文件目錄) stderr_logfile=/data/logs/supervisor/log/%(program_name)s_error.log stderr_logfile_maxbytes=50MB stderr_logfile_backups=10 # 日志輸出路徑,該路徑自定義(路徑不存在需要手動創建文件目錄) stdout_logfile=/data/logs/supervisor/log/%(program_name)s_error.log stdout_logfile_maxbytes=50MB stdout_logfile_backups=10
?3、啟動Supervisor
注意:WebApplication.WebUI和WebApplication.WebAPI 應用程序需要放在對應目錄下/data/apps
# 啟動Supervisor supervisord -c /etc/supervisord.conf #查看狀態 supervisorctl status # 防火墻開放端口(作者兩個應用端口號分別是7777、8888) firewall-cmd --add-port=8888/tcp --permanent firewall-cmd --add-port=7777/tcp --permanent
4、Supervisor 后臺管理頁面設置
vi /etc/supervisord.conf
取消截圖部分注釋
訪問supervsior 后臺管理頁面,http://192.168.140.129:9001/
5、bash終端控制
#啟動Supervisor supervisord -c /etc/supervisor/supervisord.conf # 查看狀態 supervisorctl status # 停止某個服務 supervisorctl stop WebApplication1 # 停止所有服務 supervisorctl stop all # 開始某個服務 supervisorctl start WebApplication1 # 開始所有服務 supervisorctl start all # 重啟某個服務 supervisorctl restart WebApplication1 # 重啟所有服務 supervisorctl restart all # 重啟Supervisor supervisorctl reload # 修改Supervisor supervisorctl update
6、將supervsior 配置設置為開機自啟動服務
vi /usr/lib/systemd/system/supervisord.service # 內容 [Unit] Description=Supervisor [Service] Type=forking PIDFile=/var/run/supervisord.pid ExecStart=/usr/bin/supervisord -c /etc/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 # 驗證是否為開機自啟動 systemctl is-enabled supervisord
7、supervisord操作命令
# 停止 systemctl stop supervisord # 啟動 systemctl start supervisord # 狀態 systemctl status supervisord # 重載 systemctl reload supervisord # 重啟 systemctl restart supervisord
參考鏈接:
https://www.cnblogs.com/chenxi001/p/13614831.html
https://www.jianshu.com/p/9d3b993556b2
原文鏈接:https://www.cnblogs.com/sportsky/p/16109940.html
相關推薦
- 2022-09-21 使用注解實現Redis緩存功能_Redis
- 2022-05-14 基于Unity編寫一個九宮格抽獎軟件_C#教程
- 2022-11-06 Python操作XML文件的使用指南_python
- 2022-05-03 python讀寫xml文件實例詳解嘛_python
- 2023-03-15 C語言枚舉與聯合圖文梳理講解_C 語言
- 2022-08-27 關于pygame自定義窗口創建及相關操作指南_python
- 2022-01-30 tortoisegit pull時報錯
- 2022-01-28 mybatis事務DefaultSqlSession-策略模式
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支