Supervisor全攻略(2)

supervisord的配置文件主要由幾個配置段構成,配置項以K/V格式呈現,下面就看看各個配置端須要怎樣配置:

[unix_http_server] python

    在該配置塊的參數項表示的是一個監聽在socket上的HTTP server,若是[unix_http_server]塊不在配置文件中,則不會啓動基於socket的HTTP server。 shell

file:一個unix domain socket的文件路徑,HTTP/XML-RPC會監聽在這上面
chmod:在啓動時修改unix domain socket的mode
chown:修改socket文件的屬主
username:HTTP server在認證時的用戶名
password:認證密碼
    eg:

[unix_http_server]
file = /tmp/supervisor.sock
chmod = 0777
chown= nobody:nogroup
username = user
password = 123

[inet_http_server] dom

    在該配置塊的參數項表示的是一個監聽在TCP上的HTTP server,若是[inet_http_server]塊不在配置文件中,則不會啓動基於TCP的HTTP server。 socket

port:TCP監聽的地址和端口(ip:port),這個地址會被HTTP/XML-RPC監聽
username:HTTP server在認證時的用戶名
password:認證密碼
    eg:

[inet_http_server]
port = 127.0.0.1:9001
username = user
password = 123

[supervisord] ide

    該配置塊的參數項是關於supervisord進程的全局配置項。 url

logfile:log文件路徑
logfile_maxbytes:log文件達到多少後自動進行輪轉,單位是KB、MB、GB。若是設置爲0則表示不限制日誌文件大小
logfile_backups:輪轉日誌備份的數量,默認是10,若是設置爲0,則不備份
loglevel:error、warn、info、debug、trace、blather、critical
pidfile:pid文件路徑
umask:umask值,默認022
nodaemon:若是設置爲true,則supervisord在前臺啓動,而不是以守護進程啓動
minfds:supervisord在成功啓動前可用的最小文件描述符數量,默認1024
minprocs:supervisord在成功啓動前可用的最小進程描述符數量,默認200
nocleanup:防止supervisord在啓動的時候清除已經存在的子進程日誌文件
childlogdir:自動啓動的子進程的日誌目錄
user:supervisord的運行用戶
directory:supervisord以守護進程運行的時候切換到這個目錄
strip_ansi:消除子進程日誌文件中的轉義序列
environment:一個k/v對的list列表

    eg: spa

[supervisord]
logfile = /tmp/supervisord.log
logfile_maxbytes = 50MB
logfile_backups=10
loglevel = info
pidfile = /tmp/supervisord.pid
nodaemon = false
minfds = 1024
minprocs = 200
umask = 022
user = chrism
identifier = supervisor
directory = /tmp
nocleanup = true
childlogdir = /tmp
strip_ansi = false
environment = KEY1="value1",KEY2="value2"

[supervisorctl] 操作系統

    該配置塊參數是關於supervisorctl pwa

serverurl:這個url是用來訪問supervisord服務的(http://localhost:9001),或者是個sockets文件(unix:///absolute/path/to/file.sock)
username:supervisorctl鏈接supervisord的認證用戶
password:認證密碼
prompt:默認是supervisor
history_file:history文件路徑
    eg:

[supervisorctl]
serverurl = unix:///tmp/supervisor.sock
username = chris
password = 123
prompt = mysupervisor

[program:x] 翻譯

    該配置塊包含一個或者多個program段,program來代表supervisord要控制哪些程序。該配置塊的頭部是有固定格式的,一個關鍵字program,後面跟着一個冒號,接下來纔是程序名。例如:[program:foo],foo就是程序名,在使用supervisorctl來操做程序的時候,就是以foo來標明的。

command:啓動程序使用的命令,能夠是絕對路徑或者相對路徑
process_name:一個python字符串表達式,用來表示supervisor進程啓動的這個的名稱,默認值是%(program_name)s
numprocs:Supervisor啓動這個程序的多個實例,若是numprocs>1,則process_name的表達式必須包含%(process_num)s,默認是1
numprocs_start:一個int偏移值,當啓動實例的時候用來計算numprocs的值
priority:權重,能夠控制程序啓動和關閉時的順序,權重越低:越早啓動,越晚關閉。默認值是999
autostart:若是設置爲true,當supervisord啓動的時候,進程會自動重啓。
autorestart:值能夠是false、true、unexpected。false:進程不會自動重啓,unexpected:當程序退出時的退出碼不是exitcodes中定義的時,進程會重啓,true:進程會無條件重啓當退出的時候。
startsecs:程序啓動後等待多長時間後才認爲程序啓動成功
startretries:supervisord嘗試啓動一個程序時嘗試的次數。默認是3
exitcodes:一個預期的退出返回碼,默認是0,2。
stopsignal:當收到stop請求的時候,發送信號給程序,默認是TERM信號,也能夠是 HUP, INT, QUIT, KILL, USR1, or USR2。
stopwaitsecs:在操做系統給supervisord發送SIGCHILD信號時等待的時間
stopasgroup:若是設置爲true,則會使supervisor發送中止信號到整個進程組
killasgroup:若是設置爲true,則在給程序發送SIGKILL信號的時候,會發送到整個進程組,它的子進程也會受到影響。
user:若是supervisord以root運行,則會使用這個設置用戶啓動子程序
redirect_stderr:若是設置爲true,進程則會把標準錯誤輸出到supervisord後臺的標準輸出文件描述符。
stdout_logfile:把進程的標準輸出寫入文件中,若是stdout_logfile沒有設置或者設置爲AUTO,則supervisor會自動選擇一個文件位置。
stdout_logfile_maxbytes:標準輸出log文件達到多少後自動進行輪轉,單位是KB、MB、GB。若是設置爲0則表示不限制日誌文件大小
stdout_logfile_backups:標準輸出日誌輪轉備份的數量,默認是10,若是設置爲0,則不備份
stdout_capture_maxbytes:當進程處於stderr capture mode模式的時候,寫入FIFO隊列的最大bytes值,單位能夠是KB、MB、GB
stdout_events_enabled:若是設置爲true,當進程在寫它的stderr到文件描述符的時候,PROCESS_LOG_STDERR事件會被觸發
stderr_logfile:把進程的錯誤日誌輸出一個文件中,除非redirect_stderr參數被設置爲true
stderr_logfile_maxbytes:錯誤log文件達到多少後自動進行輪轉,單位是KB、MB、GB。若是設置爲0則表示不限制日誌文件大小
stderr_logfile_backups:錯誤日誌輪轉備份的數量,默認是10,若是設置爲0,則不備份
stderr_capture_maxbytes:當進程處於stderr capture mode模式的時候,寫入FIFO隊列的最大bytes值,單位能夠是KB、MB、GB
stderr_events_enabled:若是設置爲true,當進程在寫它的stderr到文件描述符的時候,PROCESS_LOG_STDERR事件會被觸發
environment:一個k/v對的list列表
directory:supervisord在生成子進程的時候會切換到該目錄
umask:設置進程的umask
serverurl:是否容許子進程和內部的HTTP服務通信,若是設置爲AUTO,supervisor會自動的構造一個url
    eg:

[program:cat]
command=/bin/cat
process_name=%(program_name)s
numprocs=1
directory=/tmp
umask=022
priority=999
autostart=true
autorestart=true
startsecs=10
startretries=3
exitcodes=0,2
stopsignal=TERM
stopwaitsecs=10
user=chrism
redirect_stderr=false
stdout_logfile=/a/path
stdout_logfile_maxbytes=1MB
stdout_logfile_backups=10
stdout_capture_maxbytes=1MB
stderr_logfile=/a/path
stderr_logfile_maxbytes=1MB
stderr_logfile_backups=10
stderr_capture_maxbytes=1MB
environment=A="1",B="2"
serverurl=AUTO

[include]

    該配置段裏面設置能夠包含其餘配置文件

files:其餘配置文件


    下面這幾個配置段,LZ不打算翻譯了,由於我暫時還用不上,哈哈.....

[group:x]
[fcgi-program:x]
[eventlistener:x]
[rpcinterface:x]

相關文章
相關標籤/搜索