supervisor的啟動(dòng)順序:
以下啟動(dòng)順序由上到下優(yōu)先級(jí),依次遞減
supervisord #默認(rèn)去找$CWD/supervisord.conf施禾,也就是當(dāng)前目錄
supervisord #默認(rèn)$CWD/etc/supervisord.conf,也就當(dāng)前目錄下的etc目錄
supervisord #默認(rèn)去找/etc/supervisord.conf的配置文件
supervisord -c /home/supervisord.conf #到指定路徑下去找配置文件
常用conf配置
[unix_http_server]
file=/tmp/supervisor.sock ; socket文件的路徑,supervisorctl用XML_RPC和supervisord通信就是通過(guò)它進(jìn)行
的。如果不設(shè)置的話(huà),supervisorctl也就不能用了
不設(shè)置的話(huà)外永,默認(rèn)為none。 非必須設(shè)置
;chmod=0700 ; 這個(gè)簡(jiǎn)單衰抑,就是修改上面的那個(gè)socket文件的權(quán)限為0700
不設(shè)置的話(huà)象迎,默認(rèn)為0700荧嵌。 非必須設(shè)置
;chown=nobody:nogroup ; 這個(gè)一樣呛踊,修改上面的那個(gè)socket文件的屬組為user.group
不設(shè)置的話(huà),默認(rèn)為啟動(dòng)supervisord進(jìn)程的用戶(hù)及屬組啦撮。非必須設(shè)置
;username=user ; 使用supervisorctl連接的時(shí)候谭网,認(rèn)證的用戶(hù)
不設(shè)置的話(huà),默認(rèn)為不需要用戶(hù)赃春。 非必須設(shè)置
;password=123 ; 和上面的用戶(hù)名對(duì)應(yīng)的密碼愉择,可以直接使用明碼,也可以使用SHA加密
如:{SHA}82ab876d1387bfafe46cc1c8a2ef074eae50cb1d
默認(rèn)不設(shè)置。锥涕。衷戈。非必須設(shè)置
;[inet_http_server] ; 偵聽(tīng)在TCP上的socket,Web Server和遠(yuǎn)程的supervisorctl都要用到他
不設(shè)置的話(huà)层坠,默認(rèn)為不開(kāi)啟殖妇。非必須設(shè)置
;port=127.0.0.1:9001 ; 這個(gè)是偵聽(tīng)的IP和端口,偵聽(tīng)所有IP用 :9001或*:9001破花。
這個(gè)必須設(shè)置谦趣,只要上面的[inet_http_server]開(kāi)啟了,就必須設(shè)置它
;username=user ; 這個(gè)和上面的uinx_http_server一個(gè)樣座每。非必須設(shè)置
;password=123 ; 這個(gè)也一個(gè)樣前鹅。非必須設(shè)置
[supervisord] ;這個(gè)主要是定義supervisord這個(gè)服務(wù)端進(jìn)程的一些參數(shù)的
這個(gè)必須設(shè)置,不設(shè)置峭梳,supervisor就不用干活了
logfile=/tmp/supervisord.log ; 這個(gè)是supervisord這個(gè)主進(jìn)程的日志路徑舰绘,注意和子進(jìn)程的日志不搭嘎。
默認(rèn)路徑$CWD/supervisord.log葱椭,$CWD是當(dāng)前目錄除盏。。非必須設(shè)置
logfile_maxbytes=50MB ; 這個(gè)是上面那個(gè)日志文件的最大的大小挫以,當(dāng)超過(guò)50M的時(shí)候者蠕,會(huì)生成一個(gè)新的日
志文件。當(dāng)設(shè)置為0時(shí)掐松,表示不限制文件大小
默認(rèn)值是50M踱侣,非必須設(shè)置。
logfile_backups=10 ; 日志文件保持的數(shù)量大磺,上面的日志文件大于50M時(shí)抡句,就會(huì)生成一個(gè)新文件。文件
數(shù)量大于10時(shí)杠愧,最初的老文件被新文件覆蓋待榔,文件數(shù)量將保持為10
當(dāng)設(shè)置為0時(shí),表示不限制文件的數(shù)量流济。
默認(rèn)情況下為10锐锣。。绳瘟。非必須設(shè)置
loglevel=info ; 日志級(jí)別雕憔,有critical, error, warn, info, debug, trace, or blather等
默認(rèn)為info。糖声。斤彼。非必須設(shè)置項(xiàng)
pidfile=/tmp/supervisord.pid ; supervisord的pid文件路徑分瘦。
默認(rèn)為$CWD/supervisord.pid。琉苇。嘲玫。非必須設(shè)置
nodaemon=false ; 如果是true,supervisord進(jìn)程將在前臺(tái)運(yùn)行
默認(rèn)為false并扇,也就是后臺(tái)以守護(hù)進(jìn)程運(yùn)行趁冈。。拜马。非必須設(shè)置
minfds=1024 ; 這個(gè)是最少系統(tǒng)空閑的文件描述符渗勘,低于這個(gè)值supervisor將不會(huì)啟動(dòng)。
系統(tǒng)的文件描述符在這里設(shè)置cat /proc/sys/fs/file-max
默認(rèn)情況下為1024俩莽。旺坠。。非必須設(shè)置
minprocs=200 ; 最小可用的進(jìn)程描述符扮超,低于這個(gè)值supervisor也將不會(huì)正常啟動(dòng)取刃。
ulimit -u這個(gè)命令,可以查看linux下面用戶(hù)的最大進(jìn)程數(shù)
默認(rèn)為200出刷。璧疗。。非必須設(shè)置
;umask=022 ; 進(jìn)程創(chuàng)建文件的掩碼
默認(rèn)為022馁龟。崩侠。非必須設(shè)置項(xiàng)
;user=chrism ; 這個(gè)參數(shù)可以設(shè)置一個(gè)非root用戶(hù),當(dāng)我們以root用戶(hù)啟動(dòng)supervisord之后坷檩。
我這里面設(shè)置的這個(gè)用戶(hù)却音,也可以對(duì)supervisord進(jìn)行管理
默認(rèn)情況是不設(shè)置。矢炼。系瓢。非必須設(shè)置項(xiàng)
;identifier=supervisor ; 這個(gè)參數(shù)是supervisord的標(biāo)識(shí)符,主要是給XML_RPC用的句灌。當(dāng)你有多個(gè)
supervisor的時(shí)候夷陋,而且想調(diào)用XML_RPC統(tǒng)一管理,就需要為每個(gè)
supervisor設(shè)置不同的標(biāo)識(shí)符了
默認(rèn)是supervisord胰锌。骗绕。。非必需設(shè)置
;directory=/tmp ; 這個(gè)參數(shù)是當(dāng)supervisord作為守護(hù)進(jìn)程運(yùn)行的時(shí)候匕荸,設(shè)置這個(gè)參數(shù)的話(huà)爹谭,啟動(dòng)
supervisord進(jìn)程之前枷邪,會(huì)先切換到這個(gè)目錄
默認(rèn)不設(shè)置榛搔。诺凡。。非必須設(shè)置
;nocleanup=true ; 這個(gè)參數(shù)當(dāng)為false的時(shí)候践惑,會(huì)在supervisord進(jìn)程啟動(dòng)的時(shí)候腹泌,把以前子進(jìn)程
產(chǎn)生的日志文件(路徑為AUTO的情況下)清除掉。有時(shí)候咱們想要看歷史日志尔觉,當(dāng)
然不想日志被清除了凉袱。所以可以設(shè)置為true
默認(rèn)是false,有調(diào)試需求的同學(xué)可以設(shè)置為true侦铜。专甩。。非必須設(shè)置
;childlogdir=/tmp ; 當(dāng)子進(jìn)程日志路徑為AUTO的時(shí)候钉稍,子進(jìn)程日志文件的存放路徑涤躲。
默認(rèn)路徑是這個(gè)東西,執(zhí)行下面的這個(gè)命令看看就OK了贡未,處理的東西就默認(rèn)路徑
python -c "import tempfile;print tempfile.gettempdir()"
非必須設(shè)置
;environment=KEY="value" ; 這個(gè)是用來(lái)設(shè)置環(huán)境變量的种樱,supervisord在linux中啟動(dòng)默認(rèn)繼承了linux的
環(huán)境變量,在這里可以設(shè)置supervisord進(jìn)程特有的其他環(huán)境變量俊卤。
supervisord啟動(dòng)子進(jìn)程時(shí)嫩挤,子進(jìn)程會(huì)拷貝父進(jìn)程的內(nèi)存空間內(nèi)容。 所以設(shè)置的
這些環(huán)境變量也會(huì)被子進(jìn)程繼承消恍。
小例子:environment=name="haha",age="hehe"
默認(rèn)為不設(shè)置岂昭。。狠怨。非必須設(shè)置
;strip_ansi=false ; 這個(gè)選項(xiàng)如果設(shè)置為true佩抹,會(huì)清除子進(jìn)程日志中的所有ANSI 序列。什么是ANSI
序列呢取董?就是我們的\n,\t這些東西棍苹。
默認(rèn)為false。茵汰。枢里。非必須設(shè)置
; the below section must remain in the config file for RPC
; (supervisorctl/web interface) to work, additional interfaces may be
; added by defining them in separate rpcinterface: sections
[rpcinterface:supervisor] ;這個(gè)選項(xiàng)是給XML_RPC用的,當(dāng)然你如果想使用supervisord或者web server 這
個(gè)選項(xiàng)必須要開(kāi)啟的
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
[supervisorctl] ;這個(gè)主要是針對(duì)supervisorctl的一些配置
serverurl=unix:///tmp/supervisor.sock ; 這個(gè)是supervisorctl本地連接supervisord的時(shí)候蹂午,本地UNIX socket
路徑栏豺,注意這個(gè)是和前面的[unix_http_server]對(duì)應(yīng)的
默認(rèn)值就是unix:///tmp/supervisor.sock。豆胸。非必須設(shè)置
;serverurl=http://127.0.0.1:9001 ; 這個(gè)是supervisorctl遠(yuǎn)程連接supervisord的時(shí)候奥洼,用到的TCP socket路徑
注意這個(gè)和前面的[inet_http_server]對(duì)應(yīng)
默認(rèn)就是http://127.0.0.1:9001。晚胡。灵奖。非必須項(xiàng)
;username=chris ; 用戶(hù)名
默認(rèn)空嚼沿。。非必須設(shè)置
;password=123 ; 密碼
默認(rèn)空瓷患。骡尽。非必須設(shè)置
;prompt=mysupervisor ; 輸入用戶(hù)名密碼時(shí)候的提示符
默認(rèn)supervisor。擅编。非必須設(shè)置
;history_file=~/.sc_history ; 這個(gè)參數(shù)和shell中的history類(lèi)似攀细,我們可以用上下鍵來(lái)查找前面執(zhí)行過(guò)的命令
默認(rèn)是no file的。爱态。所以我們想要有這種功能谭贪,必須指定一個(gè)文件。锦担。故河。非
必須設(shè)置
; The below sample program section shows all possible program subsection values,
; create one or more 'real' program: sections to be able to control them under
; supervisor.
;[program:theprogramname] ;這個(gè)就是咱們要管理的子進(jìn)程了,":"后面的是名字吆豹,最好別亂寫(xiě)和實(shí)際進(jìn)程
有點(diǎn)關(guān)聯(lián)最好鱼的。這樣的program我們可以設(shè)置一個(gè)或多個(gè),一個(gè)program就是
要被管理的一個(gè)進(jìn)程
;command=/bin/cat ; 這個(gè)就是我們的要啟動(dòng)進(jìn)程的命令路徑了痘煤,可以帶參數(shù)
例子:/home/test.py -a 'hehe'
有一點(diǎn)需要注意的是凑阶,我們的command只能是那種在終端運(yùn)行的進(jìn)程,不能是
守護(hù)進(jìn)程衷快。這個(gè)想想也知道了宙橱,比如說(shuō)command=service httpd start。
httpd這個(gè)進(jìn)程被linux的service管理了蘸拔,我們的supervisor再去啟動(dòng)這個(gè)命令
這已經(jīng)不是嚴(yán)格意義的子進(jìn)程了师郑。
這個(gè)是個(gè)必須設(shè)置的項(xiàng)
;process_name=%(program_name)s ; 這個(gè)是進(jìn)程名,如果我們下面的numprocs參數(shù)為1的話(huà)调窍,就不用管這個(gè)參數(shù)
了稽亏,它默認(rèn)值%(program_name)s也就是上面的那個(gè)program冒號(hào)后面的名字补胚,
但是如果numprocs為多個(gè)的話(huà),那就不能這么干了。想想也知道记罚,不可能每個(gè)
進(jìn)程都用同一個(gè)進(jìn)程名吧煤率。
;numprocs=1 ; 啟動(dòng)進(jìn)程的數(shù)目猪杭。當(dāng)不為1時(shí)病袄,就是進(jìn)程池的概念,注意process_name的設(shè)置
默認(rèn)為1 歉甚。万细。非必須設(shè)置
;directory=/tmp ; 進(jìn)程運(yùn)行前,會(huì)前切換到這個(gè)目錄
默認(rèn)不設(shè)置纸泄。赖钞。腰素。非必須設(shè)置
;umask=022 ; 進(jìn)程掩碼,默認(rèn)none仁烹,非必須
;priority=999 ; 子進(jìn)程啟動(dòng)關(guān)閉優(yōu)先級(jí)耸弄,優(yōu)先級(jí)低的咧虎,最先啟動(dòng)卓缰,關(guān)閉的時(shí)候最后關(guān)閉
默認(rèn)值為999 。砰诵。非必須設(shè)置
;autostart=true ; 如果是true的話(huà)征唬,子進(jìn)程將在supervisord啟動(dòng)后被自動(dòng)啟動(dòng)
默認(rèn)就是true 。茁彭。非必須設(shè)置
;autorestart=unexpected ; 這個(gè)是設(shè)置子進(jìn)程掛掉后自動(dòng)重啟的情況总寒,有三個(gè)選項(xiàng),false,unexpected
和true理肺。如果為false的時(shí)候摄闸,無(wú)論什么情況下,都不會(huì)被重新啟動(dòng)妹萨,
如果為unexpected年枕,只有當(dāng)進(jìn)程的退出碼不在下面的exitcodes里面定義的退
出碼的時(shí)候,才會(huì)被自動(dòng)重啟乎完。當(dāng)為true的時(shí)候熏兄,只要子進(jìn)程掛掉,將會(huì)被無(wú)
條件的重啟
;startsecs=1 ; 這個(gè)選項(xiàng)是子進(jìn)程啟動(dòng)多少秒之后树姨,此時(shí)狀態(tài)如果是running摩桶,則我們認(rèn)為啟
動(dòng)成功了
默認(rèn)值為1 。帽揪。非必須設(shè)置
;startretries=3 ; 當(dāng)進(jìn)程啟動(dòng)失敗后硝清,最大嘗試啟動(dòng)的次數(shù)。转晰。當(dāng)超過(guò)3次后耍缴,supervisor將把
此進(jìn)程的狀態(tài)置為FAIL
默認(rèn)值為3 。挽霉。非必須設(shè)置
;exitcodes=0,2 ; 注意和上面的的autorestart=unexpected對(duì)應(yīng)防嗡。。exitcodes里面的定義的
退出碼是expected的侠坎。
;stopsignal=QUIT ; 進(jìn)程停止信號(hào)蚁趁,可以為T(mén)ERM, HUP, INT, QUIT, KILL, USR1, or USR2等信號(hào)
默認(rèn)為T(mén)ERM 。实胸。當(dāng)用設(shè)定的信號(hào)去干掉進(jìn)程他嫡,退出碼會(huì)被認(rèn)為是expected
非必須設(shè)置
;stopwaitsecs=10 ; 這個(gè)是當(dāng)我們向子進(jìn)程發(fā)送stopsignal信號(hào)后番官,到系統(tǒng)返回信息
給supervisord,所等待的最大時(shí)間钢属。 超過(guò)這個(gè)時(shí)間徘熔,supervisord會(huì)向該
子進(jìn)程發(fā)送一個(gè)強(qiáng)制kill的信號(hào)。
默認(rèn)為10秒淆党。酷师。非必須設(shè)置
;stopasgroup=false ; 這個(gè)東西主要用于,supervisord管理的子進(jìn)程染乌,這個(gè)子進(jìn)程本身還有
子進(jìn)程山孔。那么我們?nèi)绻麅H僅干掉supervisord的子進(jìn)程的話(huà),子進(jìn)程的子進(jìn)程
有可能會(huì)變成孤兒進(jìn)程荷憋。所以咱們可以設(shè)置可個(gè)選項(xiàng)台颠,把整個(gè)該子進(jìn)程的
整個(gè)進(jìn)程組都干掉。 設(shè)置為true的話(huà)勒庄,一般killasgroup也會(huì)被設(shè)置為true串前。
需要注意的是,該選項(xiàng)發(fā)送的是stop信號(hào)
默認(rèn)為false实蔽。荡碾。非必須設(shè)置。盐须。
;killasgroup=false ; 這個(gè)和上面的stopasgroup類(lèi)似玩荠,不過(guò)發(fā)送的是kill信號(hào)
;user=chrism ; 如果supervisord是root啟動(dòng),我們?cè)谶@里設(shè)置這個(gè)非root用戶(hù)贼邓,可以用來(lái)
管理該program
默認(rèn)不設(shè)置阶冈。。塑径。非必須設(shè)置項(xiàng)
;redirect_stderr=true ; 如果為true女坑,則stderr的日志會(huì)被寫(xiě)入stdout日志文件中
默認(rèn)為false,非必須設(shè)置
;stdout_logfile=/a/path ; 子進(jìn)程的stdout的日志路徑统舀,可以指定路徑匆骗,AUTO,none等三個(gè)選項(xiàng)誉简。
設(shè)置為none的話(huà)碉就,將沒(méi)有日志產(chǎn)生。設(shè)置為AUTO的話(huà)闷串,將隨機(jī)找一個(gè)地方
生成日志文件瓮钥,而且當(dāng)supervisord重新啟動(dòng)的時(shí)候,以前的日志文件會(huì)被
清空。當(dāng) redirect_stderr=true的時(shí)候碉熄,sterr也會(huì)寫(xiě)進(jìn)這個(gè)日志文件
;stdout_logfile_maxbytes=1MB ; 日志文件最大大小桨武,和[supervisord]中定義的一樣。默認(rèn)為50
;stdout_logfile_backups=10 ; 和[supervisord]定義的一樣锈津。默認(rèn)10
;stdout_capture_maxbytes=1MB ; 這個(gè)東西是設(shè)定capture管道的大小呀酸,當(dāng)值不為0的時(shí)候,子進(jìn)程可以從stdout
發(fā)送信息琼梆,而supervisor可以根據(jù)信息性誉,發(fā)送相應(yīng)的event。
默認(rèn)為0叮叹,為0的時(shí)候表達(dá)關(guān)閉管道艾栋。爆存。蛉顽。非必須項(xiàng)
;stdout_events_enabled=false ; 當(dāng)設(shè)置為ture的時(shí)候,當(dāng)子進(jìn)程由stdout向文件描述符中寫(xiě)日志的時(shí)候先较,將
觸發(fā)supervisord發(fā)送PROCESS_LOG_STDOUT類(lèi)型的event
默認(rèn)為false携冤。。闲勺。非必須設(shè)置
;stderr_logfile=/a/path ; 這個(gè)東西是設(shè)置stderr寫(xiě)的日志路徑曾棕,當(dāng)redirect_stderr=true。這個(gè)就不用
設(shè)置了菜循,設(shè)置了也是白搭翘地。因?yàn)樗鼤?huì)被寫(xiě)入stdout_logfile的同一個(gè)文件中
默認(rèn)為AUTO,也就是隨便找個(gè)地存癌幕,supervisord重啟被清空衙耕。。非必須設(shè)置
;stderr_logfile_maxbytes=1MB ; 這個(gè)出現(xiàn)好幾次了勺远,就不重復(fù)了
;stderr_logfile_backups=10 ; 這個(gè)也是
;stderr_capture_maxbytes=1MB ; 這個(gè)一樣橙喘,和stdout_capture一樣。 默認(rèn)為0胶逢,關(guān)閉狀態(tài)
;stderr_events_enabled=false ; 這個(gè)也是一樣厅瞎,默認(rèn)為false
;environment=A="1",B="2" ; 這個(gè)是該子進(jìn)程的環(huán)境變量,和別的子進(jìn)程是不共享的
;serverurl=AUTO ;
; The below sample eventlistener section shows all possible
; eventlistener subsection values, create one or more 'real'
; eventlistener: sections to be able to handle event notifications
; sent by supervisor.
;[eventlistener:theeventlistenername] ;這個(gè)東西其實(shí)和program的地位是一樣的初坠,也是suopervisor啟動(dòng)的子進(jìn)
程和簸,不過(guò)它干的活是訂閱supervisord發(fā)送的event。他的名字就叫
listener了碟刺。我們可以在listener里面做一系列處理锁保,比如報(bào)警等等
樓主這兩天干的活,就是弄的這玩意
;command=/bin/eventlistener ; 這個(gè)和上面的program一樣,表示listener的可執(zhí)行文件的路徑
;process_name=%(program_name)s ; 這個(gè)也一樣身诺,進(jìn)程名蜜托,當(dāng)下面的numprocs為多個(gè)的時(shí)候,才需要霉赡。否則默認(rèn)就
OK了
;numprocs=1 ; 相同的listener啟動(dòng)的個(gè)數(shù)
;events=EVENT ; event事件的類(lèi)型橄务,也就是說(shuō),只有寫(xiě)在這個(gè)地方的事件類(lèi)型穴亏。才會(huì)被發(fā)送
;buffer_size=10 ; 這個(gè)是event隊(duì)列緩存大小蜂挪,單位不太清楚,樓主猜測(cè)應(yīng)該是個(gè)吧嗓化。當(dāng)buffer
超過(guò)10的時(shí)候棠涮,最舊的event將會(huì)被清除,并把新的event放進(jìn)去刺覆。
默認(rèn)值為10严肪。。非必須選項(xiàng)
;directory=/tmp ; 進(jìn)程執(zhí)行前谦屑,會(huì)切換到這個(gè)目錄下執(zhí)行
默認(rèn)為不切換驳糯。。氢橙。非必須
;umask=022 ; 淹沒(méi)酝枢,默認(rèn)為none,不說(shuō)了
;priority=-1 ; 啟動(dòng)優(yōu)先級(jí)悍手,默認(rèn)-1帘睦,也不扯了
;autostart=true ; 是否隨supervisord啟動(dòng)一起啟動(dòng),默認(rèn)true
;autorestart=unexpected ; 是否自動(dòng)重啟坦康,和program一個(gè)樣竣付,分true,false,unexpected等,注意
unexpected和exitcodes的關(guān)系
;startsecs=1 ; 也是一樣涝焙,進(jìn)程啟動(dòng)后跑了幾秒鐘卑笨,才被認(rèn)定為成功啟動(dòng),默認(rèn)1
;startretries=3 ; 失敗最大嘗試次數(shù)仑撞,默認(rèn)3
;exitcodes=0,2 ; 期望或者說(shuō)預(yù)料中的進(jìn)程退出碼赤兴,
;stopsignal=QUIT ; 干掉進(jìn)程的信號(hào),默認(rèn)為T(mén)ERM隧哮,比如設(shè)置為QUIT桶良,那么如果QUIT來(lái)干這個(gè)進(jìn)程
那么會(huì)被認(rèn)為是正常維護(hù),退出碼也被認(rèn)為是expected中的
;stopwaitsecs=10 ; max num secs to wait b4 SIGKILL (default 10)
;stopasgroup=false ; send stop signal to the UNIX process group (default false)
;killasgroup=false ; SIGKILL the UNIX process group (def false)
;user=chrism ;設(shè)置普通用戶(hù)沮翔,可以用來(lái)管理該listener進(jìn)程陨帆。
默認(rèn)為空。。非必須設(shè)置
;redirect_stderr=true ; 為true的話(huà)疲牵,stderr的log會(huì)并入stdout的log里面
默認(rèn)為false承二。。纲爸。非必須設(shè)置
;stdout_logfile=/a/path ; 這個(gè)不說(shuō)了亥鸠,好幾遍了
;stdout_logfile_maxbytes=1MB ; 這個(gè)也是
;stdout_logfile_backups=10 ; 這個(gè)也是
;stdout_events_enabled=false ; 這個(gè)其實(shí)是錯(cuò)的,listener是不能發(fā)送event
;stderr_logfile=/a/path ; 這個(gè)也是
;stderr_logfile_maxbytes=1MB ; 這個(gè)也是
;stderr_logfile_backups ; 這個(gè)不說(shuō)了
;stderr_events_enabled=false ; 這個(gè)也是錯(cuò)的识啦,listener不能發(fā)送event
;environment=A="1",B="2" ; 這個(gè)是該子進(jìn)程的環(huán)境變量
默認(rèn)為空负蚊。。颓哮。非必須設(shè)置
;serverurl=AUTO ; override serverurl computation (childutils)
; The below sample group section shows all possible group values,
; create one or more 'real' group: sections to create "heterogeneous"
; process groups.
;[group:thegroupname] ;這個(gè)東西就是給programs分組家妆,劃分到組里面的program。我們就不用一個(gè)一個(gè)去操作了
我們可以對(duì)組名進(jìn)行統(tǒng)一的操作冕茅。 注意:program被劃分到組里面之后伤极,就相當(dāng)于原來(lái)
的配置從supervisor的配置文件里消失了。嵌赠。塑荒。supervisor只會(huì)對(duì)組進(jìn)行管理熄赡,而不再
會(huì)對(duì)組里面的單個(gè)program進(jìn)行管理了
;programs=progname1,progname2 ; 組成員姜挺,用逗號(hào)分開(kāi)
這個(gè)是個(gè)必須的設(shè)置項(xiàng)
;priority=999 ; 優(yōu)先級(jí),相對(duì)于組和組之間說(shuō)的
默認(rèn)999彼硫。炊豪。非必須選項(xiàng)
; The [include] section can just contain the "files" setting. This
; setting can list multiple files (separated by whitespace or
; newlines). It can also contain wildcards. The filenames are
; interpreted as relative to this file. Included files *cannot*
; include files themselves.
;[include] ;這個(gè)東西挺有用的,當(dāng)我們要管理的進(jìn)程很多的時(shí)候拧篮,寫(xiě)在一個(gè)文件里面
就有點(diǎn)大了词渤。我們可以把配置信息寫(xiě)到多個(gè)文件中,然后include過(guò)來(lái)
;files = relative/directory/*.ini
錯(cuò)誤1
unix:///var/run/supervisor.sock no such file
解決方法
這里把所有的/tmp路徑改掉串绩,/tmp/supervisor.sock 改成 /var/run/supervisor.sock缺虐,
/tmp/supervisord.log 改成 /var/log/supervisor.log,
/tmp/supervisord.pid 改成 /var/run/supervisor.pid 要不容易被linux自動(dòng)清掉
重啟 supervisor
錯(cuò)誤2
Error: Another program is already listening on a port that one of our HTTP servers is configured to use. Shut this program down first before starting supervisord.
解決方法
sudo unlink /tmp/supervisor.sock
or
sudo unlink /var/run/supervisor.sock