天天看點

Supervisor 程序守護工具

說明

公司Linux伺服器無法連接配接外網,隻能下載下傳安裝包上傳到伺服器進行離線安裝

Supervisor簡介

Supervisor是用Python開發的一套通用的程序管理程式,能将一個普通的指令行程序變為背景daemon,并監控程序狀态,異常退出時能自動重新開機。它是通過fork/exec的方式把這些被管理的程序當作supervisor的子程序來啟動,這樣隻要在supervisor的配置檔案中,把要管理的程序的可執行檔案的路徑寫進去即可。也實作當子程序挂掉的時候,父程序可以準确擷取子程序挂掉的資訊的,可以選擇是否自己啟動和報警。supervisor還提供了一個功能,可以為supervisord或者每個子程序,設定一個非root的user,這個user就可以管理它對應的程序。

Supervisor安裝

  • 離線安裝Python
-- 解壓安裝包
tar -zxvf Python-2.7.5.tgz

-- 進入解壓後的目錄
cd Python-2.7.5

-- 安裝python2.7.5到指定目錄 
./configure –prefix=/usr/lib/python2.7/
make 
make install
 
-- 建立軟連接配接
ln -s /usr/lib/python2.7/bin/python /bin/python           
  • 離線安裝setuptools-2.0
tar -xzvf setuptools-2.0.tar.gz 

cd setuptools-2.0 

python setup.py install           
  • 離線安裝meld3-1.0.2
tar zxvf meld3-1.0.2.tar.gz

cd meld3-1.0.2

python setup.py install           
  • 離線安裝supervisor3.1.3
tar -zxvf supervisor-3.1.3.tar.gz

cd supervisor-3.1.3

python setup.py install           

Supervisor配置

  • 生成Supervisor配置檔案

    echo_supervisord_conf > /etc/supervisord.conf

  • 啟動Supervisor

    supervisord -c /etc/supervisord.conf

  • 驗證Supervisor是否啟動

    ps aux | grep supervisord

  • 配置Supervisor應用守護
-- 在etc目錄下建立應用守護檔案存放目錄和配置檔案
mkdir supervisor
cd supervisor
mkdir conf.d
cd conf.d

-- 配置守護程序
vi task.conf

[program:csxsettlement-framework-eureka]; 應用名稱
user=root; 使用root使用者執行啟動指令
command=java -Xms256m -Xmx512m -jar /sxapp/sxappopt/csxs-settlement/framework/eureka/csxsettlement-framework-eureka.jar
directory=/sxapp/sxappopt/csxs-settlement/framework/eureka; jar包所在目錄
autostart = false; 是否自動啟動
autorestart = false; 是否自動重新開機
startsecs = 5
startretries = 3
redirect_stderr = true
stdout_logfile_maxbytes = 10MB
stdout_logfile_backups = 20
stdout_logfile =/sxapp/sxappopt/csxs-settlement/framework/eureka/stdout.log; 日志目錄和日志檔案名稱           
  • 修改supervisord.conf檔案
-- 打開inet_http_server,去掉前面的';'号
[inet_http_server]         ; inet (TCP) server disabled by default
port=127.0.0.1:9001        ; (ip_address:port specifier, *:port for all iface)
username=user              ; (default is no username (open server))
password=123               ; (default is no password (open server))

-- 引入配置的守護程序
[include]
files = /etc/supervisor/conf.d/*.conf           

注意:

修改 supervisord.conf 配置檔案後,要執行

supervisord -c /etc/supervisord.conf

重新開機supervisor

Supervisor管理守護程序

  • 方式1:通過Supervisor後管頁面進行管理
賬号密碼配置在supervisord.conf檔案中
Supervisor 程式守護工具
通過Supervisor管理頁面可以對守護程序執行啟動、停止、重新開機、檢視日志等操作
Supervisor 程式守護工具
  • 方式2:在SSH控制台通過指令進行管理
Supervisor 程式守護工具

常用的相關管理指令

supervisorctl restart <application name> ;重新開機指定應用
supervisorctl stop <application name> ;停止指定應用
supervisorctl start <application name> ;啟動指定應用
supervisorctl restart all ;重新開機所有應用
supervisorctl stop all ;停止所有應用
supervisorctl start all ;啟動所有應用           

版本記錄

序号 修改日期 調整方式 調整内容
1 2019-10-25 新增 Supervisor離線安裝、基礎操作
2