溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Supervisor 進程管理工具

發(fā)布時間:2020-03-16 12:54:53 來源:網(wǎng)絡 閱讀:1293 作者:藍宮衛(wèi) 欄目:系統(tǒng)運維

    Supervisor  進程管理工具時刻檢測進程存活狀態(tài);可用來啟動、重啟、關閉進程;

    Supervisord(supervisor是一個C/S模型的程序,這是server端,對應的有client端:supervisorctl)和應用程序(即我們要管理的程序)。

一、下載:

https://pypi.python.org/packages/80/37/964c0d53cbd328796b1aeb7abea4c0f7b0e8c7197ea9b0b9967b7d004def/supervisor-3.3.1.tar.gz#md5=202f760f9bf4930ec06557bac73e5cf2

# cd supervisor

# python setup.py build

    提示安裝 meld3 版本要求誰 0.6.5 以上;

    Searching for meld3>=0.6.5

https://pypi.python.org/packages/45/a0/317c6422b26c12fe0161e936fc35f36552069ba8e6f7ecbd99bbffe32a5f/meld3-1.0.2.tar.gz#md5=3ccc78cd79cffd63a751ad7684c02c91

# cd meld3

# python setup.py install

# cd supervisor

# python setup.py install 

檢測;

    >>> import supervisor 查看是否能成功加載。

二、或者 直接 yum install  supervisor

啟動;

supervisord -c /etc/supervisord.conf

如修改了配置文件

則需要重新加載配置;

supervisorctl reload 

    三、Supervisord.conf 示例;

[unix_http_server]

file=/tmp/supervisor.sock       ; UNIX socket 文件,supervisorctl 會使用

;chmod=0700                          ; socket 文件的 mode,默認是 0700

;chown=nobody:nogroup       ; socket 文件的 owner,格式: uid:gid

;[inet_http_server]                    ; HTTP 服務器,提供 web 管理界面

;port=127.0.0.1:9001                ; Web 管理后臺運行的 IP 和端口,如果開放到公網(wǎng),需要注意安全性

;username=user                       ; 登錄管理后臺的用戶名

;password=123                        ; 登錄管理后臺的密碼

[supervisord]

logfile=/tmp/supervisord.log  ; 日志文件,默認是 $CWD/supervisord.log

logfile_maxbytes=50MB          ; 日志文件大小,超出會 rotate,默認 50MB

logfile_backups=10                  ; 日志文件保留備份數(shù)量默認 10

loglevel=info                            ; 日志級別,默認 info,其它: debug,warn,trace

pidfile=/tmp/supervisord.pid   ; pid 文件

nodaemon=false                       ; 是否在前臺啟動,默認是 false,即以 daemon 的方式啟動

minfds=1024                             ; 可以打開的文件描述符的最小值,默認 1024

minprocs=200                           ; 可以打開的進程數(shù)的最小值,默認 200

[rpcinterface:supervisor]

supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface

[supervisorctl]

serverurl=unix:///tmp/supervisor.sock ; 通過 UNIX socket 連接 supervisord,路徑與 unix_http_server 部分的 file 一致

;serverurl=http://127.0.0.1:9001  ; 通過 HTTP 的方式連接 supervisord

    可以 /etc/supervisor/ 用于存放這些配置文件,相應的,把 /etc/supervisord.conf 里 include 部分的的配置修改一下:

[include]

files = /etc/supervisor/*.conf


    四、program 配置示例

[program:redis]

directory = /data/redis  ; 程序的啟動目錄

command = ./redis-server redis.conf  ; 啟動命令,可以看出與手動在命令行啟動的命令是一樣的

autostart = true         ; 在 supervisord 啟動的時候也自動啟動

startsecs = 5                ; 啟動 5 秒后沒有異常退出,就當作已經(jīng)正常啟動了

autorestart = true       ; 程序異常退出后自動重啟

startretries = 3             ; 啟動失敗自動重試次數(shù),默認是 3

user = leon                  ; 用哪個用戶啟動

redirect_stderr = true  ; 把 stderr 重定向到 stdout,默認 false

stdout_logfile_maxbytes = 20MB  ; stdout 日志文件大小,默認 50MB

stdout_logfile_backups = 20             ; stdout 日志文件備份數(shù)

; stdout 日志文件,需要注意當指定目錄不存在時無法正常啟動,所以需要手動創(chuàng)建目錄(supervisord 會自動創(chuàng)建日志文件)

stdout_logfile = /data/supervisor/logs/redis_stdout.log

 

    啟動;(指向配置啟動)

supervisorctl -c /etc/supervisord.conf

執(zhí)行 supervisorctl 查看狀態(tài);

    > status    # 查看程序狀態(tài)


或者寫個檢測進程判定啟動也可以


# cat start.sh

src/redis-server conf/redis.conf 


# cat check_redis.sh

#!/bin/bash

redis=$(ps -C redis --no-heading|wc -l)

if [ "${redis}" = "0" ]; then

    sh start.sh

fi




向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI