Supervisor 配置過程


 

Supervisor 配置過程

(轉自https://www.izixia.cn/2016/01/03/supervisor-pei-zhi-guo-cheng/)

1.安裝 
pip install supervisor 安裝后測試是否成功echo_supervisord_conf

2.建立配置文件 
創建目錄

mkdir -m 755 -p /etc/supervisor/

mkdir -m 755 conf.d

echo_supervisord_conf > /etc/supervisor/supervisord.conf

在conf.d 文件夾中創建配置文件如app.ini

[program:pmapp] command=python3 /home/keith/temp/app.py autorestart=true stdout_logfile=/home/keith/temp/supervisord_stdout.log stderr_logfile=/home/keith/temp/supervisord_stderr.log [supervisord] 

app.py的內容如下,功能是一個每五秒在寫入一條記錄: 

import time def log(): while True: with open('a.txt','a') as f: s = 'log:%s \n'%time.strftime('%H:%M:%S') f.write(s) print(s) time.sleep(5) log() 

3.添加配置文件到主配置文件

打開/etc/supervisor/supervisord.conf 文件,到最后一行可以看到

;[include] ;files = /relative/dictory/*.ini 

刪除這里的分號,然后添加我們配置文件/etc/supervisor/conf.d/app.ini,修改后如下

[include] files = /etc/supervisor/conf.d/*.ini /etc/supervisor/example.ini 

多個路徑用空格隔開就可以了

4.啟動supervisor

supervisor有兩個命令,supervisordsupervisorctl,通過supervisord管理啟動和配置supervisor本身,通過supervisorctl來管理使用supervisor啟動和管理的自身的一些應用,如我們的這里的app.py

  • 啟動supervisor 用命令
supervisord -c /etc/supervisor/supervisord.conf 
  • 關閉supervisor 用命令
supervisorctl shutdown 

如果先建的app.ini(控制文件),在使用啟動命令后這些經過配置的程序也會啟動

  • 啟動程序app.py
supervisorctl start program_name 

這里的program的name是配置文件ini中的[program:name],所以這里的program_name是pmapp

  • 關閉程序app.py
supervisorctl stop program_name 
  • 刷新配置文件 如果啟動后,修改了ini文件,可以通過reload命令來刷新
supervisorctl reload 
  • 查看supervisor的運行狀態
ps -efH|grep supervisor 

這里提醒一下如果按以上操作出現以下error:

Error: .ini file does not include supervisorctl section  
For help, use /usr/local/bin/supervisorctl -h 

或者

error: <class 'socket.error'>, [Errno 101] Network is unreachable: file: /usr/lib/python2.7/socket.py line: 571 

切換到/etc/supervisor目錄執行以上的命令

執行supervisorctl start APP_NAME 或者執行 supervisorctl 的相關命令,如果出現

unix:///tmp/supervisor.sock no such file 

說明 Supervisord 服務還沒有啟動,檢查你的 supervisord.conf 文件最后的注釋 ; 取消,files 路徑沒有問題

[include] files = ./conf.d/*.ini 

之后在目錄 /etc/supervisor 下重新運行

supervisord -c /etc/supervisor/supervisord.conf 

最后附上 supervisord 服務運行命令

重新 read 配置文件: supervisorctl reread

重啟服務: supervisorctl reload

關閉服務: supervisorctl shutdown


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM