Linux進程管理神器 - supervisord


 參考: 

在這里先放官方鏈接:

  1. 官網: http://supervisord.org/
  2. github: https://github.com/Supervisor/supervisor

 

概述:

軟件功能:

本軟件是進程管理系統,可以很簡單的管理系統,同時提供了很豐富的接口可以讓你隨心所欲的管理

應用場景:

    1. 常駐任務維護、管理,不論你的常駐進程是什么語言寫的,都可以使用本神器管理
    2. 用來監控nginx, redis, mongodb等軟件,實現軟件如果因為異常掛了,可以自動重啟,不至於終端服務

 

架構:

supervisord: 服務端,真正用來監控程序的進程

supervisorctl: 客戶端,用來管理監控程序的進程

 

安裝:

說明:

    1. 我這里采用了一個自己約定的規范,方便組內成員形成共識,對服務管理沒有學習成本
    2. 我是依賴python安裝的

規范:

    1. 軟件根目錄: /data/opt
    2. 快捷方式根目錄: /data/opt/scripts,其中本目錄會加入到系統PATH中。export PATH='/data/opt/scripts':$PATH
    3. supervisord的配置目錄、以及運行日志目錄都放置在/data/opt/supervisord里

依賴:

python

安裝:

    pip install supervisor

 

結構樹:

.
|-- conf
|   |-- demo.conf.tpl
|   `-- demo_multi.conf.tpl
|-- logs
|   `-- supervisord.log
|-- supervisord.conf
|-- supervisord.pid
`-- supervisor.sock

2 directories, 6 files

   

配置 - supervisord:

說明:

1. 本軟件支持web頁面管理,可以放開相應配置,但建議如果沒必要,不需要放開。我給的示例是沒有放開的

配置:

[unix_http_server]
file=/data/opt/supervisord/supervisor.sock   ; the path to the socket file

[supervisord]
logfile=/data/opt/supervisord/logs/supervisord.log ; main log file; default $CWD/supervisord.log
logfile_maxbytes=50MB        ; max main logfile bytes b4 rotation; default 50MB
logfile_backups=10           ; # of main logfile backups; 0 means none, default 10
loglevel=info                ; log level; default info; others: debug,warn,trace
pidfile=/data/opt/supervisord/supervisord.pid ; supervisord pidfile; default supervisord.pid
nodaemon=false               ; start in foreground if true; default false
minfds=1024                  ; min. avail startup file descriptors; default 1024
minprocs=200                 ; min. avail process descriptors;default 200

[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface

[supervisorctl]
serverurl=unix:///data/opt/supervisord/supervisor.sock ; use a unix:// URL  for a unix socket

[include]
files = conf/*.conf

啟動:

    supervisord -c /data/opt/supervisord/supervisord.conf

 

配置 - supervisorctl:

說明:

進程可以只啟動一個,也可以啟動多個。這里把兩個模板都放出來,大家可以根據需要更改。

配置:

    conf/demo.conf.tpl:

[program:%%name%%]
command=%%command%%
autostart=true
autorestart=true
startretries=3

; stop
stopsignal=TERM

; user
user=root

; 日志
redirect_stderr=true
stdout_logfile=/data/opt/supervisord/logs/%(program_name)s.log
stdout_logfile_maxbytes=1MB
stdout_logfile_backups=50

    conf/demo_multi.conf.tpl:

[program:%%name%%]
command=%%command%%
process_name=%(program_name)s_%(process_num)02d
numprocs=3
autostart=true
autorestart=true
startretries=3

; stop
stopsignal=TERM

; user
user=root

; 日志
redirect_stderr=true
stdout_logfile=/data/opt/supervisord/logs/%(program_name)s.log
stdout_logfile_maxbytes=1MB
stdout_logfile_backups=50

啟動:

supervisorctl -c /data/opt/supervisord/supervisord.conf

常用管理命令:

  • help:幫助
  • start: 啟動服務
  • stop: 停止服務
  • restart: 重啟服務
  • reload: 重新加載服務

使用截圖:

 

其他:

如果你使用過程中有不明白的,可以到qq群: 854211808 或者 qq掃下面的二維碼加入群。

如果有技術分享交流也都可以哦!

 


免責聲明!

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



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