1. 程式人生 > >任務的配置檔案

任務的配置檔案

[program:tomcat]
command=/opt/apache-tomcat-8.0.35/bin/catalina.sh run
stdout_logfile=/opt/apache-tomcat-8.0.35/logs/catalina.out
autostart=true
autorestart=true
startsecs=5
priority=1
stopasgroup=true
killasgroup=true
;[program:theprogramname]      ;這個就是咱們要管理的子程序了,":"後面的是名字,最好別亂寫和實際程序
                                有點關聯最好。這樣的program我們可以設定一個或多個,一個program就是
                                要被管理的一個程序
;command=/bin/cat              ; 這個就是我們的要啟動程序的命令路徑了,可以帶引數
                                例子:/home/test.py -a 'hehe'
                                有一點需要注意的是,我們的command只能是那種在終端執行的程序,不能是
                                守護程序。這個想想也知道了,比如說command=service httpd start。
                                httpd這個程序被linux的service管理了,我們的supervisor再去啟動這個命令
                                這已經不是嚴格意義的子程序了。
                                這個是個必須設定的項
;process_name=%(program_name)s ; 這個是程序名,如果我們下面的numprocs引數為1的話,就不用管這個引數
                                 了,它預設值%(program_name)s也就是上面的那個program冒號後面的名字,
                                 但是如果numprocs為多個的話,那就不能這麼幹了。想想也知道,不可能每個
                                 程序都用同一個程序名吧。

                                
;numprocs=1                    ; 啟動程序的數目。當不為1時,就是程序池的概念,注意process_name的設定
                                 預設為1    。。非必須設定
;directory=/tmp                ; 程序執行前,會前切換到這個目錄
                                 預設不設定。。。非必須設定
;umask=022                     ; 程序掩碼,預設none,非必須
;priority=999                  ; 子程序啟動關閉優先順序,優先順序低的,最先啟動,關閉的時候最後關閉
                                 預設值為999 。。非必須設定
;autostart=true                ; 如果是true的話,子程序將在supervisord啟動後被自動啟動
                                 預設就是true   。。非必須設定
;autorestart=unexpected        ; 這個是設定子程序掛掉後自動重啟的情況,有三個選項,false,unexpected
                                 和true。如果為false的時候,無論什麼情況下,都不會被重新啟動,
                                 如果為unexpected,只有當程序的退出碼不在下面的exitcodes裡面定義的退 
                                 出碼的時候,才會被自動重啟。當為true的時候,只要子程序掛掉,將會被無
                                 條件的重啟
;startsecs=1                   ; 這個選項是子程序啟動多少秒之後,此時狀態如果是running,則我們認為啟
                                 動成功了
                                 預設值為1 。。非必須設定
;startretries=3                ; 當程序啟動失敗後,最大嘗試啟動的次數。。當超過3次後,supervisor將把
                                 此程序的狀態置為FAIL
                                 預設值為3 。。非必須設定
;exitcodes=0,2                 ; 注意和上面的的autorestart=unexpected對應。。exitcodes裡面的定義的
                                 退出碼是expected的。
;stopsignal=QUIT               ; 程序停止訊號,可以為TERM, HUP, INT, QUIT, KILL, USR1, or USR2等訊號
                                  預設為TERM 。。當用設定的訊號去幹掉程序,退出碼會被認為是expected
                                  非必須設定
;stopwaitsecs=10               ; 這個是當我們向子程序傳送stopsignal訊號後,到系統返回資訊
                                 給supervisord,所等待的最大時間。 超過這個時間,supervisord會向該
                                 子程序傳送一個強制kill的訊號。
                                 預設為10秒。。非必須設定
;stopasgroup=false             ; 這個東西主要用於,supervisord管理的子程序,這個子程序本身還有
                                 子程序。那麼我們如果僅僅幹掉supervisord的子程序的話,子程序的子程序
                                 有可能會變成孤兒程序。所以咱們可以設定可個選項,把整個該子程序的
                                 整個程序組都幹掉。 設定為true的話,一般killasgroup也會被設定為true。
                                 需要注意的是,該選項傳送的是stop訊號
                                 預設為false。。非必須設定。。
;killasgroup=false             ; 這個和上面的stopasgroup類似,不過傳送的是kill訊號
;user=chrism                   ; 如果supervisord是root啟動,我們在這裡設定這個非root使用者,可以用來
                                 管理該program
                                 預設不設定。。。非必須設定項
;redirect_stderr=true          ; 如果為true,則stderr的日誌會被寫入stdout日誌檔案中
                                 預設為false,非必須設定
;stdout_logfile=/a/path        ; 子程序的stdout的日誌路徑,可以指定路徑,AUTO,none等三個選項。
                                 設定為none的話,將沒有日誌產生。設定為AUTO的話,將隨機找一個地方
                                 生成日誌檔案,而且當supervisord重新啟動的時候,以前的日誌檔案會被
                                 清空。當 redirect_stderr=true的時候,sterr也會寫進這個日誌檔案
;stdout_logfile_maxbytes=1MB   ; 日誌檔案最大大小,和[supervisord]中定義的一樣。預設為50
;stdout_logfile_backups=10     ; 和[supervisord]定義的一樣。預設10
;stdout_capture_maxbytes=1MB   ; 這個東西是設定capture管道的大小,當值不為0的時候,子程序可以從stdout
                                 傳送資訊,而supervisor可以根據資訊,傳送相應的event。
                                 預設為0,為0的時候表達關閉管道。。。非必須項
;stdout_events_enabled=false   ; 當設定為ture的時候,當子程序由stdout向檔案描述符中寫日誌的時候,將
                                 觸發supervisord傳送PROCESS_LOG_STDOUT型別的event
                                 預設為false。。。非必須設定
;stderr_logfile=/a/path        ; 這個東西是設定stderr寫的日誌路徑,當redirect_stderr=true。這個就不用
                                 設定了,設定了也是白搭。因為它會被寫入stdout_logfile的同一個檔案中
                                 預設為AUTO,也就是隨便找個地存,supervisord重啟被清空。。非必須設定
;stderr_logfile_maxbytes=1MB   ; 這個出現好幾次了,就不重複了
;stderr_logfile_backups=10     ; 這個也是
;stderr_capture_maxbytes=1MB   ; 這個一樣,和stdout_capture一樣。 預設為0,關閉狀態
;stderr_events_enabled=false   ; 這個也是一樣,預設為false
;environment=A="1",B="2"       ; 這個是該子程序的環境變數,和別的子程序是不共享的
;serverurl=AU