開發者學堂課程【Linux 系統管理進階第四課時:Supervisord】學習筆記,與課程緊密聯系,讓使用者快速學習知識。
課程位址:
https://developer.aliyun.com/learning/course/789/detail/13756Supervisord
内容簡介
一、了解Supervisord
二、Supervisord 的安裝
三、Supervisord 配置管理
四、真機檢視Supervisord
一、Supervisord
1、Supervisord 是用Python開發的一套通用的程序管理程式,能将一個普通的指令行程序變為背景daemon ,并監控程序狀态,異常退出時能自動重新開機。
2、Supervisord 可以很友善的管理批量程序,不僅支援啟動、重新開機、關閉、重載,還支援監控程序,程序意外僵死後可自動拉起,進而確定服務可以持續運轉。
yum install supervisord 安裝Supervisord
echo_ supervisord_ conf > /etc/supervisord. conf 生成Supervisord 的配置檔案
supervisord -c /etc/supervisord. conf啟動Supervisord
啟動成功後即可執行Supervisord 的指令。
了解Supervisord 的安裝後,重點了解一下Supervisord 配置管理
Supervisord 的主程序配置檔案放置在/etc/supervisord.conf:
[program:echo_hi]
command=echo hi >> /tmp/hi
使用者定義的項目程序配置檔案放置在/etc/supervisor/conf.d目錄下
具體配置項目:
autostart=true是否自動啟動
autorestart=true 是否自動重新開機
startsecs=10啟動時長
startretries=3啟動失敗重試次數
exitcodes=0,2退出的代碼
stopsignal=QUIT退出時的信号
stopwaitsecs=10停止時等待的時間
user=root具體執行時的指令
log_stdout=true是否記錄标準輸出
log_stderr=true是否記錄标準報錯
例:
logfile=/tmp/show_hi.log日志記錄路徑為show_hi.log
logfile_maxbytes=1MB最大大小為1M
logfile_backups=10備份最多儲存10天
stdout_logfile_maxbytes=20MB标準輸出大小為20M
stdout_logfile_backups=20備份最多儲存20天
stdout_logfile=/tmp/echo_hi. stdout. log路徑為echo_hi. stdout. log
有了這些基本配置,我們就可以讓Supervisord來 接管我們的程序,讓程序可以持續運轉下去。
cat supervisord.conf 檢視Supervisord的配置檔案

unix_http_server 是Supervisord 提供的unix接口,可以通過這個接口對它執行操作。
比如自己想編寫程式來控制Supervisord,那就可以通過接口檔案來進行連接配接。
還可以使用http進行連接配接:
在這裡還沒有開啟,在後續做大規模叢集控制時可以通過在叢集上配置Supervisord 的server 來完成具體的配置。
Supervisord 的具體的控制:
包含logfile的配置,最大的大小,備份多少次,等級等資訊。
最重要的就是program部分。這一部分決定了我們的指令到底是什麼。
包含指令、程序名、啟動多少個程序、執行目錄、預設的umask、優先級、是否需要自動重新開機、是否需要自動啟動、啟動時是否需要等待和重試、退出的代碼等等。
這些資訊決定了程序在實際的執行過程中大概會以什麼樣的狀态進行記錄。
日志标準輸出的位置:
錯誤輸出的位置:
關鍵點:
Environment設定環境變量,可以設定多個環境變量