任務的配置檔案
阿新 • • 發佈:2019-05-04
[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