A Process Control System 使用b/s架構、運行在類Unix系統上一個進程監控管理系統它可以使進程以daemon方式運行,并且一直監控進程,在意外退出時能自動重啟進程。
安裝
Supervisor是使用python開發的一個進程管工具,安裝和使用都非常簡單。使用 pip 或者 easy_install 安裝會非常方便,自動解決依賴關系。
– sudo pip install supervisor
– sudo easy_install supervisor
pip的安裝請參考 python自動安裝pip
初識
安裝完成后系統會增加幾個命令
supervisord 用于啟動supervisor服務。
supervisorctl 用于管理supervisor服務,管理使用supervisor啟動的進程。
安裝好supervisor后需要手動的生成配置文件。
echo_supervisord_conf | sudo tee /etc/supervisord.conf
supervisor默認讀取的配置文件為/etc/supervisord.conf,建議將配置文件放在此位置。
我們先簡單的查看一下 supervisord.conf,配置文件格式和ini格式配置文件相同,由節、鍵、值組成,配置文件注釋為。
[unix_http_server]
此節是配置連接supervisord的sock的文件,包括sock文件路徑,用戶認證。使用supervisorctl命令進行管理進程時,使用的就是此sock文件。默認保持開啟,如將此項關閉 [inet_http_server] 則無法使用。 [inet_http_server]
此節配置supervisor的web管理界面,配置監聽的地址和端口,已經用戶認證。默認為關閉狀態。如需開啟則將此節注釋去掉,然后修改相應的鍵值。 [supervisord]
此節為配置supervisor服務參數,例如日志,日志大小等一些參數。 [supervisorctl]
用于配置supervisorctl管理程序參數,例如sock文件路徑,需要和[unix_http_server]相同。
[include]此節作用為包含其他配置文件,本文建議開啟此項,包含額外的配置文件,將需要管理的進程配置寫入到額外的配置文件,不需要經常編輯主配置文件,保證安全性。修改代碼為
[include]files = /etc/supervisor.d/*.conf
讀取/etc/supervisor.d/文件夾下所有后綴為conf的文件。
第一步配置第一個使用supervisord管理的程序
我們使用 python2.7 來作為演示,使用SimpleHTTPServer模塊方便快速的啟動一個http server。
1,創建配置文件 /etc/supervisor.d/test1.conf,寫入一下內容
[program:simplehttpserver]command=/usr/bin/env python2.7 -m SimpleHTTPServer 20080

這是一個最簡單的例子,第一行指定當前配置的程序名稱。第二行程序運行命令(20080 為 http server端口號)。
2,第一個程序已經配置好,接下來就可以啟動supervisord來查看一下效果。
輸入命令 sudo supervisord 即可啟動服務。
新聞熱點
疑難解答