日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Linux下安裝并使用Supervisor

Supervisor是用Python開發(fā)的一套通用的進(jìn)程管理程序,能將一個普通的命令行進(jìn)程變?yōu)楹笈_daemon,并監(jiān)控進(jìn)程狀態(tài),異常退出時能自動重啟。

創(chuàng)新互聯(lián)主要從事網(wǎng)站制作、網(wǎng)站設(shè)計、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)臨西,十載網(wǎng)站建設(shè)經(jīng)驗,價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18982081108

安裝

Supervisor是基于python開發(fā)的,安裝Supervisor前,需要先安裝python,Supervisor可以通過pip或者easy_install安裝。

通過easy_install安裝

$ yum install python-setuptools
$ easy_install supervisor

或者,通過pip安裝

$ pip install supervisor

結(jié)構(gòu)

Supervisord

主進(jìn)程,負(fù)責(zé)管理進(jìn)程的server,它會根據(jù)配置文件創(chuàng)建指定數(shù)量的應(yīng)用程序的子進(jìn)程,管理子進(jìn)程的整個生命周期,對crash的進(jìn)程重啟,對進(jìn)程變化發(fā)送事件通知等。同時內(nèi)置web server和XML-RPC Interface,輕松實(shí)現(xiàn)進(jìn)程管理。

Supervisorctl

管理client,用戶通過命令行發(fā)送消息給supervisord,可以查看進(jìn)程狀態(tài),加載配置文件,啟停進(jìn)程,查看進(jìn)程標(biāo)準(zhǔn)輸出和錯誤輸出,遠(yuǎn)程操作等。

Web server

Superviosr提供了web server功能,可通過web控制進(jìn)程。

XML-RPC interface

XML-RPC接口,提供XML-RPC服務(wù)來對子進(jìn)程進(jìn)行管理,監(jiān)控。

基本使用

Supervisor的配置文件命名為supervisord.conf,它為supervisord(Supervisor 的主服務(wù)命令) 和 supervisorctl(Supervisor 的監(jiān)控管理命令) 提供配置選項設(shè)置。 Supervisor并不規(guī)定配置文件supervisord.conf的存放位置。Supervisor服務(wù)啟動的時候默認(rèn)會在:

$CWD/supervisord.conf
$CWD/etc/supervisord.conf
/etc/supervisord.conf

這幾個目錄位置查找配置文件supervisord.conf,用yum安裝的supervisor默認(rèn)會生成/etc/supervisord.conf配置文件。Supervisor也提供參數(shù) “-c” 來指定配置文件的目錄路徑。

如果你是編譯安裝,或其他系統(tǒng),可以在終端輸入”echo_supervisord_conf”命令查看Supervisor的默認(rèn)配置的內(nèi)容。其可以用來生成一份默認(rèn)的配置文件:

$ echo_supervisord_conf > /etc/supervisord.conf

Supervisor的配置文件生成之后,現(xiàn)在可以添加我們要管理的進(jìn)程的配置文件??梢园阉信渲庙椂紝懙絪upervisord.conf文件里,但并不推薦這樣做,而是通過include的方式把不同的程序(組)寫到不同的配置文件里。要確保你的supervisord.conf配置文件中include包含了你自定義的配置文件包含進(jìn)來,如下:

[include]
files = /etc/supervisord.d/*.conf

下面我們修改配置文件將memcached進(jìn)程以deamon方式拉起(memcached進(jìn)程也可以是一個shell或python腳本),并對此進(jìn)行監(jiān)控。

先在supervisor目錄下創(chuàng)建一個配置文件,如下

$ cat /etc/supervisord.d/memcached.conf
[program:memcached]
# 啟動程序的命令;
command = /usr/bin/memcached -m 5120 -p 11211 -u nobody -l 0.0.0.0 -b 65535
# 在supervisord啟動的時候也自動啟動;
autostart = true
# 程序異常退出后自動重啟;
autorestart = true
# 啟動5秒后沒有異常退出,就當(dāng)作已經(jīng)正常啟動了;
startsecs = 5
# 啟動失敗自動重試次數(shù),默認(rèn)是3;
startretries = 3
# 啟動程序的用戶;
user = nobody
# 把stderr重定向到stdout,默認(rèn)false;
redirect_stderr = true
# 標(biāo)準(zhǔn)日志輸出;
stdout_logfile=/data/log/memcached/out-memcache.log
# 錯誤日志輸出;
stderr_logfile=/data/log/memcached/err-memcache.log
# 標(biāo)準(zhǔn)日志文件大小,默認(rèn)50MB;
stdout_logfile_maxbytes = 20MB
# 標(biāo)準(zhǔn)日志文件備份數(shù);
stdout_logfile_backups = 20

一份配置文件至少需要一個 [program:x] 部分的配置,來告訴supervisord 需要管理那個進(jìn)程。[program:x]語法中的x表示program name,會在客戶端(supervisorctl 或 web 界面)顯示,在 supervisorctl 中通過這個值來對程序進(jìn)行start、restart、stop等操作。日志文件要存放的文件夾要創(chuàng)建好。

使用supervisor還有一個更大的好處就是,可以快速開啟多個進(jìn)程,配置參數(shù)如下:

process_name=%(process_num)s
numprocs=3

表示對同一個配置開啟3個線程。

啟動supervisor,就會拉起memcached進(jìn)程。

$ supervisord -c /etc/supervisor/supervisord.conf

ps:Supervisor啟動后在/tmp目錄會產(chǎn)生supervisord.log 、supervisord.pid 、supervisor.sock這三個文件,如果有問題可以查看日志。

查看Supervisor是否已經(jīng)啟動

$ ps -ef | grep supervisor | grep -v grep
root      1170     1  0 18:57 ?        00:00:00 /usr/bin/python /usr/bin/supervisord

查看業(yè)務(wù)進(jìn)程是否已經(jīng)被拉起

$ supervisorctl status
memcached                  RUNNING   pid 1230, uptime 0:04:39

停止Supervisor(子進(jìn)程也會被停止,也可以針對單個程序進(jìn)行start、update、restart、stop操作)

$ supervisorctl shutdown

使用supervisorctl命令

Supervisor可通過維護(hù)命令supervisorctl管理或通過web管理界面管理。維護(hù)命令supervisorctl有兩種用法。一種是命令式,一種是交互式。

命令式

\1. 查詢各進(jìn)程運(yùn)行狀態(tài)

supervisorctl status

\2. 啟、停、重啟業(yè)務(wù)進(jìn)程,memcached為進(jìn)程名,即[program:memcached]里配置的值

supervisorctl start memcached
supervisorctl stop memcached
supervisorctl restart memcached

\3. 重啟所有屬于名為groupworker這個分組的進(jìn)程

supervisorctl start groupworker
supervisorctl stop groupworker
supervisorctl restart groupworker

\4. 啟、停、重啟全部進(jìn)程(不會載入最新的配置文件)

supervisorctl start all
supervisorctl stop all
supervisorctl restart all

\5. 重新加載配置文件,停止原有進(jìn)程并按新的配置啟動所有進(jìn)程(注意:所有進(jìn)程會停止并重啟,線上操作慎重)

supervisorctl reload

\6. 根據(jù)最新的配置文件,啟動新配置或有改動的進(jìn)程,配置沒有改動的進(jìn)程不會受影響而被重啟(注意:這才是線上可以操作的命令,不會重啟原有進(jìn)程)

supervisorctl update

注意:顯示狀態(tài)為stop停止掉的進(jìn)程,用reload或者update都不會自動重啟。

交互式

$ supervisorctl
memcached                       RUNNING   pid 1256, uptime 0:01:47
supervisor> stop memcached
memcached: stopped
supervisor> start memcached
memcached: started
supervisor> status
memcached                       RUNNING   pid 1258, uptime 0:00:04
supervisor> restart memcached
memcached: stopped
memcached: started
supervisor> status
memcached                       RUNNING   pid 1259, uptime 0:00:02
supervisor>

故障處理

這幾個故障都是我使用supervisor時遇到的坑,幫你們填上。

supervisor 比較適合監(jiān)控業(yè)務(wù)應(yīng)用,且只能監(jiān)控前臺程序,如果你的程序是以daemon的方式啟動,那么執(zhí)行:supervisor status 會提示:BACKOFF Exited too quickly (process log may have details)。比如:memcached啟動時加上-d選項就是以后臺daemon啟動,就不能使用supervisor監(jiān)控了。

/usr/bin/memcached -d -m 5120 -p 11211 -u nobody -l 0.0.0.0 -b 65535

還有一個需要注意的,如果執(zhí)行supervisor status時報錯是:FATAL Exited too quickly (process log may have details),要檢查一下是不是因為添加了user = nobody導(dǎo)致執(zhí)行權(quán)限的問題。

如果出現(xiàn)這個錯誤:

Error: .ini file does not include supervisord section

For help, use /usr/bin/supervisord -h

就是你的自定義的程序配置文件格式有問題(/etc/supervisor/conf.d/*.conf),好好檢查了。

其他

1)可以自己編寫腳本將Supervisor加入chkconfig中,隨系統(tǒng)自動啟動。 或者可以使用現(xiàn)成的腳本: Supervisor initscripts。

2)除了supervisorctl 之外,還可以配置supervisrod啟動web管理界面,這個web后臺使用Basic Auth的方式進(jìn)行身份認(rèn)證。

3)除了單個進(jìn)程的控制,還可以配置group,進(jìn)行分組管理。經(jīng)常查看日志文件,包括 supervisord的日志和各個 pragram 的日志文件,程序crash 或拋出異常的信息一半會輸出到stderr,可以查看相應(yīng)的日志文件來查找問題。

4)Supervisor有很豐富的功能,還有其他很多項配置,可以在官方文檔獲取更多信息:http://supervisord.org/index.html


分享文章:Linux下安裝并使用Supervisor
標(biāo)題路徑:http://m.5511xx.com/article/ccdoijd.html