Supervisor 進程守護工具

python實現的一款用於 監控&控制 類UNIX系統上進程的C/S系統,能很方便的對子進程進行 監聽、啓動、中止、重啓python

安裝

sudo yum -y install supervisor

配置

  • 配置文件路徑/etc/supervisor/conf.d/進程名.conf
  • 配置生效須要重啓
[program:進程名]
process_name=%(program_name)s_%(process_num)02d
directory=進程工做目錄
command=進程命令
autostart=true #服務啓動時帶起本進程
autorestart=true  #進程異常自動重啓
user=進程啓動用戶
numprocs=1 #當>1時, process_name必須有%(process_num)
priority=-1  #運行優先級,默認-1
stopsignal=QUIT  #kill進程的信號,默認是TERM
redirect_stderr=true  #標準錯誤重定向到標準輸出
stdout_logfile=/dev/null
stdout_logfile_maxbytes=0
stdout_logfile_backups=0
stderr_logfile=/dev/null
stderr_logfile_maxbytes=0
stderr_logfile_backups=0

服務端

  • 負責啓動並管理配置的子進程
  • 響應客戶端命令
# 啓動管理服務
supervisord  [-c /etc/supervisor/supervisord.conf]

客戶端

  • 交互式Shell模式
./supervisorctl
status
reread  #讀入配置文件(僅需新增配置文件時操做)
update program_name  #更新進程組配置
start program_name:*  #啓動進程
  • 直接執行命令模式
# 服務管理
    supervisorctl shutdown  #關閉daemon服務
    supervisorctl reload  #重啓daemon服務
    supervisorctl reread  #讀入配置文件(僅需新增配置文件時操做)
    
    # 進程管理
    supervisorctl status  #進程列表狀態
    supervisorctl update program名|all  #更新進程組配置
    supervisorctl restart program名|all
    supervisorctl start program名|all
    supervisorctl stop program名|all

注意bash

  • program_name用於supervisord內部的進程組標識,並非Linux中的進程名
  • ps命令能找到command, 但找不到program_name
相關文章
相關標籤/搜索