1 Supervisord的安裝
Supervisord是運作在python環境下的服務監控程式。是以在安裝supervisord之前必須有python環境。
如果系統沒有PYTHON,鍵入:yum install python(CENTOS)或者apt-get installpython(UBUNTU)
鍵入:yum install python-setuptools
easy_install supervisor
兩個指令。進行supervisor安裝
如果成功。鍵入: echo_supervisord_conf,會顯示一個superviscord_conf 的配置模闆。
鍵入:echo_supervisord_conf >/etc/supervisord.conf
生成一個supervisord的配置檔案
安裝就完成了
2啟動supervisord
鍵入:supervisord
啟動supersord服務程式
鍵入:supervisordctrl
可以進行一系列指令控制。最最要的有reload start stop restart指令。
supervisord.conf,一般隻在修改supervisord.conf後使用,這個會讓修改相關程式配置的程式關閉。沒有修改過的程式配置的程式不會有影響。
Start啟動應用程式,可以批處理多個程式
Stop停止應用程式,可以批處理多個程式
Restart重新開機應用程式,可以批處理多個程式
3Supervisord的配置檔案
鍵入: vim /etc/supervisord.conf
在檔案的末尾添加一個storm ui程式監控,配置如下:
;storm ui
[program:ui]
command=/usr/storm/storm/ui-sv.sh ;被監控程式指定的運作腳本
directory=/usr/storm/storm ;被監控程式運作的路徑
autostart=false ;是否随supervisord程序啟動而啟動,包括reloadconf
autorestart=true ;被監控程式異常中斷是否自動重新開機
startsecs=5 ;被監控程式啟動時持續時間
startretries=5 ;被監控程式啟動失敗重試的次數
redirect_stderr=true ;是否重定向std err
stdout_logfile=/tmp/ui-sv.log ;stdou 重定向輸出檔案
stdout_events_enabled=true ;是否允許stdout事件
stopsignal=QUIT ;被監控程式kill的信号
如果command的欄運作的是shell腳本,那麼在shell 腳本啟動被監控程式時要用exec修飾。例如:
#!/bin/bash
exec /home/scott/install/storm/storm-0.9.0.1/bin/stormnimbus
否則,supervisord停止不了啟動的程序.除此之外,shell腳本裡不能出現&之類的背景運作符号。
4supervisorctl指令
4.1reload指令
當你修改了supervisord.conf時,要讓配置立即生效,鍵入:
supervisorctlreload
配置就生效了
4.2start指令
當你需要啟動一個已配置的program時,鍵入:
Supervisorctlstart xxx
值得注意的是 xxx是supervisord.conf指定的名字,例如:
[program:ui],ui就是supervisorctl要控制的程式xxx
這個指令也可以批處理一批程式
Supervisorctlstar xxx1 xxx2 xxx3 …….
被監控程式的啟動順序和start參數順序一緻
4.3stop指令
當你需要停止一個已監控的程式時,鍵入:
Supervisorctlstop xxx
這個指令和start用法一緻,可以批處理多個程式。
4.4restart
當你需要重新開機一個被監聽程式時,鍵入:
Supervisorctlrestart xxx
這個指令和start用法一緻,可以批處理多個程式。
4.5status
當你需要檢視supervisord監控了什麼程式,你隻需要鍵入:
Supervisorctl status
就可以顯示:
kafka STOPPED May 27 01:57 PM
nimbus STOPPED Not started
sv RUNNING pid 24072, uptime 1:05:41
ui STOPPED Not started
其他的指令就不在介紹了,用的比較少。