Supervisor是一個C/S系統(tǒng),它可以在類UNIX系統(tǒng)上控制系統(tǒng)進(jìn)程,由python編寫,提供了大量的功能來實現(xiàn)對進(jìn)程的管理。
安裝完成 supervisor 之后,可以使用 “echo_supervisord_conf” 命令來生成樣例配置文件
echo_supervisord_conf1默認(rèn) supervisor 會使用 /etc/supervisord.conf 作為默認(rèn)配置文件。
首先寫個小程序來模擬一個服務(wù)程序,如下 myserver.sh
#!/bin/shwhile truedo date sleep 5done1234567修改配置文件 /etc/supervisord.conf ,內(nèi)容如下
[supervisord]nodaemon=true[PRogram:myserver]command=/home/kongxx/test/myserver.sh12345運(yùn)行上面的程序即可啟動supervisor服務(wù),此時會在當(dāng)前目錄下生成一個日志文件 supervisord.log。
此時我們使用 “ps -ef | grep myserver” 找到上面的服務(wù)進(jìn)程,然后kill掉這個進(jìn)程。此時就會看到日志中 supervisor 會啟動一個新的myserver進(jìn)程。
對于上面的例子我們只能啟動一個服務(wù),卻不能管理這些配置的服務(wù),下面就看看怎樣管理服務(wù)。
還是使用上面myserver.sh程序。
/etc/supervisord.conf
[inet_http_server] ; inet (TCP) server disabled by defaultport = *:9999 ; (ip_address:port specifier, *:port for all iface)username = admin ; (default is no username (open server))passWord = Letmein ; (default is no password (open server))[supervisord]nodaemon = false[rpcinterface:supervisor]supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface[supervisorctl]serverurl = http://127.0.0.1:9999 ; use an http:// url to specify an inet socketusername = admin ; should be same as http_username if setpassword = Letmein ; should be same as http_password if setprompt = mysupervisor ; cmd line prompt (default "supervisor")[program:myserver]command = /home/kongxx/test/myserver.shredirect_stderr = truestdout_logfile = /tmp/myserver.log12345678910111213141516171819202122supervisorctl也可以不帶任何參數(shù),此時即可進(jìn)入supervisor的管理命令行接口,如下:
$ supervisorctl myserver RUNNING pid 15297, uptime 0:00:27mysupervisor> ?default commands (type help <topic>):=====================================add exit open reload restart start tail avail fg pid remove shutdown status update clear maintail quit reread signal stop versionmysupervisor> 1234567891011可以使用瀏覽器訪問 http://:9999 來通過web接口管理服務(wù)。
新聞熱點
疑難解答