Linux Supervisor 守护进程基本配置
supervisor:C/S架構的進程控制系統,可使用戶在類UNIX系統中監控、管理進程。常用于管理與某個用戶或項目相關的進程。
組成部分
supervisord:服務守護進程
supervisorctl:命令行客戶端
Web Server:提供與supervisorctl功能相當的WEB操作界面
XML-RPC Interface:XML-RPC接口
查看版本信息:
supervisord -v參考地址:http://beginman.cn/linux/2015/04/06/Supervisor/
官網文檔地址:http://www.supervisord.org
安裝:
yum install python-setuptoolseasy_install supervisor配置:
1、在etc下創建目錄,并賦權限
mkdir -m 700 -p /etc/supervisor2、在目錄“?/etc/supervisor”下創建配置文件
echo_supervisord_conf > /etc/supervisor/supervisord.conf3、修改配置文件
vim /etc/supervisor/supervisord.conf在文件末尾添加,注意首尾需無空格,需頂格
[include] files=/etc/supervisor/conf.d/*.conf4、在目錄“/etc/supervisor”下創建dotnet core 進程配置文件存放目錄“conf.d”
mkdir -m 700 /etc/supervisor/conf.d5、創建進程配置文件,示例:Nginx和asp.net core的守護進程,關鍵配置:
mkdir -m 700 /etc/supervisor/conf.d/OneAspNetCore.confasp.net core
[program:OneAspNetCore] command=dotnet OneAspNetCore.dll ; 運行程序的命令 directory=/home/webapps/aspnet/ ; 執行前要不要先cd到目錄去,一般不用 autorestart = true ; 程序異常退出后自動重啟 autostart=true ; 隨著supervisord的啟動而啟動 startretries = 10 ; 啟動失敗自動重試次數,默認是 3 numprocs=1 ; 啟動幾個進程 stderr_logfile=/var/log/OneAspNetCore.err.log ; 錯誤日志文件 stdout_logfile=/var/log/OneAspNetCore.out.log ; 輸出日志文件 environment=ASPNETCORE_ENVIRONMENT=Production ; 進程環境變量 user=root ; 進程執行的用戶身份 stopsignal=KILL ; 用來殺死進程的 stopsignal=INT注:這里的日志文件目錄必須存在?supervisor不會創建該日志目錄
nginx
[program:nginx] command=systemctl start nginx ; 運行程序的命令 directory= ; 執行前要不要先cd到目錄去,一般不用 autorestart = true ; 程序異常退出后自動重啟 autostart=true ; 隨著supervisord的啟動而啟動 startretries = 10 ; 啟動失敗自動重試次數,默認是 3 numprocs=1 ; 啟動幾個進程 stderr_logfile=/var/log/nginx/nginx.err.log ; 錯誤日志文件 stdout_logfile=/var/log/nginx/nginx.out.log ; 輸出日志文件 user=root ; 進程執行的用戶身份 stopsignal=KILL ; 用來殺死進程的 stopsignal=INT?啟動Supervisor
supervisord -c /etc/supervisor/supervisord.confps:如果服務已啟動,修改配置文件可用“ supervisorctl reload ”命令來使其生效
配置Supervisor開機啟動
新建一個“supervisord.service”文件
#supervisord service for systemd (CentOS 7.0+) # by ET-CS (https://github.com/ET-CS) [Unit] Description=Supervisor daemon[Service] Type=forking ExecStart=/usr/bin/supervisord -c /etc/supervisor/supervisord.conf ExecStop=/usr/bin/supervisorctl $OPTIONS shutdown ExecReload=/usr/bin/supervisorctl $OPTIONS reload KillMode=process Restart=on-failure RestartSec=42s[Install] WantedBy=multi-user.target?
將文件拷貝至:“/usr/lib/systemd/system/”
執行命令:systemctl enable supervisord
執行命令:systemctl is-enabled supervisord #來驗證是否為開機啟動
重啟檢測是否正常!!!
web界面配置
把配置文件中?inet_http_server 前面的分號去掉 在Supervisor中?;是注釋的格式 默認是不開啟web界面的
[inet_http_server] ; inet (TCP) server disabled by default port=*:9001 ; (ip_address:port specifier, *:port for all iface) username=user ; (default is no username (open server)) password=123?
?
轉載于:https://www.cnblogs.com/miskis/p/6026452.html
總結
以上是生活随笔為你收集整理的Linux Supervisor 守护进程基本配置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 面向对象的需求分析方法
- 下一篇: 梦到牙齿全部掉光了是什么意思