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-setuptools

easy_install supervisor

配置:

1、在etc下創建目錄,並賦權限

mkdir -m 700 -p /etc/supervisor

2、在目錄“ /etc/supervisor”下創建配置文件

echo_supervisord_conf > /etc/supervisor/supervisord.conf

3、修改配置文件

vim /etc/supervisor/supervisord.conf

在文件末尾添加,注意首尾需無空格,需頂格

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

4、在目錄“/etc/supervisor”下創建dotnet core 進程配置文件存放目錄“conf.d”

 mkdir -m 700 /etc/supervisor/conf.d

5、創建進程配置文件,示例:Nginx和asp.net core的守護進程,關鍵配置:

mkdir -m 700 /etc/supervisor/conf.d/OneAspNetCore.conf

asp.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.conf

ps:如果服務已啟動,修改配置文件可用“ 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 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM