supervisor program配置例項

2021-09-08 22:34:17 字數 2693 閱讀 2402

上面我們已經把 supervisrod 執行起來了,現在可以新增我們要管理的程序的配置檔案。可以把所有配置項都寫到 supervisord.conf 檔案裡,但並不推薦這樣做,而是通過 include 的方式把不同的程式(組)寫到不同的配置檔案裡。

為了舉例,我們新建乙個目錄 /etc/supervisor/ 用於存放這些配置檔案,相應的,把 /etc/supervisord.conf 裡 include 部分的的配置修改一下:

[include]

files = /etc/supervisor/*.conf

cd /home/leon/projects/usercenter

現在編寫乙份配置檔案來管理這個程序(需要注意:用 supervisord 管理時,gunicorn 的 daemon 選項需要設定為 false):

[program:usercenter]

directory = /home/leon/projects/usercenter ; 程式的啟動目錄

autostart = true ; 在 supervisord 啟動的時候也自動啟動 startsecs = 5 ; 啟動 5 秒後沒有異常退出,就當作已經正常啟動了 autorestart = true ; 程式異常退出後自動重啟 startretries = 3 ; 啟動失敗自動重試次數,預設是 3 user = leon ; 用哪個使用者啟動 redirect_stderr = true ; 把 stderr 重定向到 stdout,預設 false stdout_logfile_maxbytes = 20mb ; stdout 日誌檔案大小,預設 50mb stdout_logfile_backups = 20 ; stdout 日誌檔案備份數 ; stdout 日誌檔案,需要注意當指定目錄不存在時無法正常啟動,所以需要手動建立目錄(supervisord 會自動建立日誌檔案) stdout_logfile = /data/logs/usercenter_stdout.log ; 可以通過 environment 來新增需要的環境變數,一種常見的用法是修改 pythonpath ; environment=pythonpath=$pythonpath:/path/to/somewhere

supervisorctl 是 supervisord 的乙個命令列客戶端工具,啟動時需要指定與 supervisord 使用同乙份配置檔案,否則與 supervisord 一樣按照順序查詢配置檔案。

supervisorctl -c /etc/supervisord.conf
上面這個命令會進入 supervisorctl 的 shell 介面,然後可以執行不同的命令了:

> status    # 檢視程式狀態

> stop usercenter # 關閉 usercenter 程式

> start usercenter # 啟動 usercenter 程式

> restart usercenter # 重啟 usercenter 程式

> reread # 讀取有更新(增加)的配置檔案,不會啟動新新增的程式

> update # 重啟配置檔案修改過的程式

上面這些命令都有相應的輸出,除了進入 supervisorctl 的 shell 介面,也可以直接在 bash 終端執行:

$ supervisorctl status

$ supervisorctl stop usercenter

$ supervisorctl start usercenter

$ supervisorctl restart usercenter

$ supervisorctl reread

$ supervisorctl update

除了 supervisorctl 之外,還可以配置 supervisrod 啟動 web 管理介面,這個 web 後台使用 basic auth 的方式進行身份認證。

除了單個程序的控制,還可以配置 group,進行分組管理。

經常檢視日誌檔案,包括 supervisord 的日誌和各個 pragram 的日誌檔案,程式 crash 或丟擲異常的資訊一半會輸出到 stderr,可以檢視相應的日誌檔案來查詢問題。

比如說,我現在啟動乙個我本機上的logstash

cd /etc/supervisord.d

vim logstash.conf

[program:logstash]

command=/opt/logstash/bin/logstash -f /opt/logstash/conf/zabbix.conf -l /opt/logstash/logs/zabbix.log

numprocs=1

autostart=true

autorestart=true

log_stdout=true

log_stderr=true

spring cloud zuul閘道器配置實踐

enabled true 使用okhttp方式請求,正常來說okhttp比較速度快一點 semaphore max semaphores 500 併發處理數,值越大越好,但到到達乙個臨界點之後,就不會提高響應速度了 host socket timeout millis 30000 socket超時時...

IDEA優化配置實操

檢視本機預設引數 關鍵的三個引數 檢視本機記憶體配置 修改引數配置 儲存配置檔案,重新啟動。jstat gcutil 檢視idea 程序pid 查詢結果表明 該電腦的新生代eden區 e,表示eden 使用了96.78 的空間,2個survivor區 s0 s1,表示survivor0 surviv...

Flume 0 9 4配置Hbase sink實踐

1 修改 flume home conf flume site.xml的配置檔案 在裡面新增以下配置 flume.plugin.classes com.cloudera.flume.hbase.hbasesink,com.cloudera.flume.hbase.attr2hbaseeventsin...