摘要:當(dāng)超過(guò)次后,將把此進(jìn)程的狀態(tài)置為默認(rèn)值為。。如果為,則的日志會(huì)被寫(xiě)入日志文件中理解為重定向輸出的日志這個(gè)參數(shù)可以設(shè)置一個(gè)非用戶(hù),當(dāng)我們以用戶(hù)啟動(dòng)之后。我這里面設(shè)置的這個(gè)用戶(hù),也可以對(duì)進(jìn)行管理子進(jìn)程的的日志路徑輸出日志文件錯(cuò)誤日志文件當(dāng)。
在使用Tp的消息隊(duì)列 think-queue的時(shí)候進(jìn)程意外結(jié)束了!導(dǎo)致項(xiàng)目沒(méi)法運(yùn)行;
所以用到了supervisor; 接下來(lái)跟大家分享一下自己的使用心得以及安裝到使用的方法;
官網(wǎng):http://supervisord.org/introd...
首先安裝 有很多辦法;
01:wget 下載壓縮包:
cd /usr/local/lee #這個(gè)lee是我自己建立的一個(gè)目錄 wget https://pypi.python.org/packages/7b/17/88adf8cb25f80e2bc0d18e094fcd7ab300632ea00b601cbbbb84c2419eae/supervisor-3.3.2.tar.gz tar -zxvf supervisor-3.3.2.tar.gz cd supervisor-3.3.2 python setup.py install
02: yum安裝:
yum install python-setuptools easy_install supervisor
我們安裝的時(shí)候使用wget的;
之后生成配置文件:
mkdir /etc/supervisor echo_supervisord_conf > /etc/supervisord.conf
打開(kāi)配置文件修改一點(diǎn)東西;
vim /etc/supervisord.conf
要將底部的
;[include] ;files = relative/directory/*.ini 修改為: [include] files=/etc/supervisor/*.conf (注意去掉分號(hào),第一次安裝的時(shí)候就因?yàn)闆](méi)去掉分號(hào)出現(xiàn)了問(wèn)題!);
之后創(chuàng)建一個(gè)文件 文件名隨意 后綴為.conf的,我這里就創(chuàng)建一個(gè)test.conf的文件;
我的項(xiàng)目在/www/wwwroot/admin/目錄下:
vim test.conf #寫(xiě)入一些配置: [program:test] # 設(shè)置進(jìn)程的名稱(chēng),使用 supervisorctl 來(lái)管理進(jìn)程時(shí)需要使用該進(jìn)程名 我這里就叫做test了! command=php think queue:work --queue saveLoginLog --daemon --tries 10; #這個(gè)就是隊(duì)列執(zhí)行的命令 directory= /www/wwwroot/admin; #命令執(zhí)行的目錄或者說(shuō)執(zhí)行 command 之前,先切換到工作目錄 可以理解為在執(zhí)行命令前會(huì)切換到這個(gè)目錄 process_name=%(process_num)02d; #默認(rèn)為 %(program_name)s,即 [program:x] 中的 x 這個(gè)是進(jìn)程名,如果我們下面的numprocs參數(shù)為1的話(huà),就不用管這個(gè)參數(shù) 了,它默認(rèn)值%(program_name)s也就是上面的那個(gè)program冒號(hào)后面的 numprocs=5; #進(jìn)程數(shù)量當(dāng)不為1時(shí)的時(shí)候,就是進(jìn)程池的概念,注意process_name的設(shè)置 autostart=true; #是否自動(dòng)啟動(dòng) autorestart=true; #程序意外退出是否自動(dòng)重啟 startsecs=1; 自動(dòng)重啟間隔 startretries=20; 當(dāng)進(jìn)程啟動(dòng)失敗后,最大嘗試啟動(dòng)的次數(shù)。。當(dāng)超過(guò)3次后,supervisor將把此進(jìn)程的狀態(tài)置為FAIL 默認(rèn)值為3 。。 redirect_stderr=true; 如果為true,則stderr的日志會(huì)被寫(xiě)入stdout日志文件中 理解為重定向輸出的日志 user=root; 這個(gè)參數(shù)可以設(shè)置一個(gè)非root用戶(hù),當(dāng)我們以root用戶(hù)啟動(dòng)supervisord之后。我這里面設(shè)置的這個(gè)用戶(hù),也可以對(duì)supervisord進(jìn)行管理 stdout_logfile= /www/wwwroot/admin/test.out.log; 子進(jìn)程的stdout的日志路徑 輸出日志文件 stderr_logfile=/www/wwwroot/admin/test.err.log ; 錯(cuò)誤日志文件 當(dāng)redirect_stderr=true。這個(gè)就不用
上面有注釋說(shuō)明的看起來(lái)有點(diǎn)混亂,我們來(lái)寫(xiě)一個(gè)沒(méi)有注釋的:
[program:test] command=php think queue:work --queue saveLoginLog --daemon --tries 10 directory= /www/wwwroot/admin process_name=%(process_num)02d numprocs=5 autostart=true autorestart=true startsecs=1 startretries=20 redirect_stderr=true user=root stdout_logfile= /www/wwwroot/admin/test.out.log stderr_logfile=/www/wwwroot/admin/test.err.log
之后執(zhí)行啟動(dòng):
supervisord -c /etc/supervisord.conf supervisorctl reload
我在執(zhí)行的時(shí)候遇到錯(cuò)誤了,下面會(huì)說(shuō)錯(cuò)誤的處理的問(wèn)題以及解決辦法;
現(xiàn)在我們來(lái)測(cè)試;
首先在測(cè)試的時(shí)候執(zhí)行 stop 將進(jìn)程停止,之后再打開(kāi)一個(gè)終端連接redis,我們執(zhí)行登錄,執(zhí)行后登錄后的隊(duì)列任務(wù)會(huì)在redis一直存在;
supervisorctl stop test 或者直接 supervisorctl stop all
可以看到是沒(méi)有被執(zhí)行的!現(xiàn)在我們開(kāi)supervisorctl 的test進(jìn)程
接下來(lái)說(shuō)一下問(wèn)題:
問(wèn)題1:
Unlinking stale socket /tmp/supervisor.sock
或者:
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
問(wèn)題2:
gave up: redis entered FATAL state, too many start retries too quickly
解決辦法:
修改redis.conf的daemonize為no
其他問(wèn)題暫時(shí)沒(méi)有發(fā)現(xiàn);
我在測(cè)試的時(shí)候進(jìn)程kill掉居然都可以執(zhí)行,所以將服務(wù)器重啟了!
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/29114.html
摘要:折騰原因之前都是遠(yuǎn)程連接服務(wù)器,然后在命令行運(yùn)行,一旦關(guān)閉遠(yuǎn)程連接,爬蟲(chóng)就會(huì)停止,很不爽,畢竟能讓一個(gè)爬蟲(chóng)在服務(wù)器一直跑才是每個(gè)小白的夢(mèng)想,所以開(kāi)始研究如何使程序在后臺(tái)運(yùn)行,剛開(kāi)始看了,感覺(jué)不好用,又搜了搜,發(fā)現(xiàn)了這個(gè)進(jìn)程管理程序。 折騰原因 之前都是遠(yuǎn)程連接服務(wù)器,然后在命令行運(yùn)行scrapy crawl spider,一旦關(guān)閉遠(yuǎn)程連接,爬蟲(chóng)就會(huì)停止,很不爽,畢竟能讓一個(gè)爬蟲(chóng)在服務(wù)器...
摘要:根據(jù)中華人民共和國(guó)信息產(chǎn)業(yè)部第十二次部務(wù)會(huì)議審議通過(guò)的非經(jīng)營(yíng)性互聯(lián)網(wǎng)信息服務(wù)備案管理辦法精神,在中華人民共和國(guó)境內(nèi)提供非經(jīng)營(yíng)性互聯(lián)網(wǎng)信息服務(wù),應(yīng)當(dāng)辦理備案。未經(jīng)備案,不得在中華人民共和國(guó)境內(nèi)從事非經(jīng)營(yíng)性互聯(lián)網(wǎng)信息服務(wù)。 當(dāng)我們開(kāi)發(fā)了一個(gè)簡(jiǎn)單的 Flask 程序,想把項(xiàng)目部署上線,我們可以選擇傳統(tǒng)的部署方式或者云部署方式把項(xiàng)目部署上線。在本文中,筆者將使用 阿里云輕量應(yīng)用服務(wù)器 安裝 C...
閱讀 2640·2021-11-22 15:24
閱讀 1370·2021-11-17 09:38
閱讀 2748·2021-10-09 09:57
閱讀 1193·2019-08-30 15:44
閱讀 2439·2019-08-30 14:00
閱讀 3540·2019-08-30 11:26
閱讀 2936·2019-08-29 16:28
閱讀 746·2019-08-29 13:56