天天看點

supervisord 知識點

  • 官方英文:
Supervisor: A Process Control System

Supervisor: 一個程序管理系統。

Supervisor is a client/server system that allows its users to monitor and control a number of processes on UNIX-like operating systems.

Supervisor 是一個 client/server 系統,允許使用者在類 UNIX 系統中管理和控制大量程序。

It shares some of the same goals of programs like launchd, daemontools, and runit. Unlike some of these programs, it is not meant to be run as a substitute for `init` as “process id 1”. Instead it is meant to be used to control processes related to a project or a customer, and is meant to start like any other program at boot time.

Supervisor 不是類 UNIX 系統中 `init` 的替代,是在系統啟動時運作。
      
  • 【産生背景】

    在一個分布式環境中,每台機器上可能需要啟動和停止多個程序,使用指令行方式一個一個手動啟動和停止非常麻煩,而且檢視每個程序的狀态也很不友善。如果有一個工具能夠實作每台機器上多個程序的簡單高效中心化管理将是非常友善的。于是Supervisord工具應運而生。與Supervisord類似的工具包括monit, daemontools和runit。

  • 【簡介】
  1. supervisord的官網:​​http://supervisord.org​​。  
  2. Supervisor是一個客戶/伺服器系統,它可以在類Unix系統中管理控制大量程序。Supervisor使用python開發,有多年曆史,目前很多生産環境下的伺服器都在使用Supervisor。
  3. Supervisor的伺服器端稱為supervisord,主要負責在啟動自身時啟動管理的子程序,響應用戶端的指令,重新開機崩潰或退出的子程序,記錄子程序stdout和stderr輸出,生成和處理子程序生命周期中的事件。可以在一個配置檔案中配置相關參數,包括Supervisord自身的狀态,其管理的各個子程序的相關屬性。配置檔案一般位于/etc/supervisord.conf。
  4. Supervisor的用戶端稱為supervisorctl,它提供了一個類shell的接口(即指令行)來使用supervisord服務端提供的功能。通過supervisorctl,使用者可以連接配接到supervisord伺服器程序,獲得伺服器程序控制的子程序的狀态,啟動和停止子程序,獲得正在運作的程序清單。用戶端通過Unix域套接字或者TCP套接字與服務端進行通信,伺服器端具有身份憑證認證機制,可以有效提升安全性。當用戶端和伺服器位于同一台機器上時,用戶端與伺服器共用同一個配置檔案/etc/supervisord.conf,通過不同标簽來區分兩者的配置。
  5. Supervisor也提供了一個web頁面來檢視和管理程序狀态,這個功能用得人比較少。

繼續閱讀