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命令。
Reload重新載入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
其他的命令就不在介紹了,用的比較少。