Supervisor快餐教程

簡(jiǎn)介

Supervisor是一個(gè)C/S系統(tǒng)萌朱,允許用戶控制類UNIX系統(tǒng)上的多個(gè)進(jìn)程。Supervisord將進(jìn)程作為其子進(jìn)程啟動(dòng)般渡,并且可以配置為在崩潰時(shí)自動(dòng)重新啟動(dòng)它們。也可以將其自動(dòng)配置為自行調(diào)用啟動(dòng)進(jìn)程侦副。通過簡(jiǎn)單易懂的INI樣式配置文件配置Supervisor。它提供了許多選項(xiàng)驼鞭,例如重啟失敗的進(jìn)程和自動(dòng)日志輪換秦驯。

安裝方式

  • pip install supervisor
  • conda install supervisor
  • ubuntu還可以使用apt-get

配置文件

supervisor配置文件通常命名為supervisor.conf。supervisordsupervisorctl都會(huì)用到這個(gè)配置文件挣棕。若supervisordsupervisorctl沒有使用-c參數(shù)指定配置文件译隘。則這兩個(gè)程序會(huì)按如下列出的順序自上而下的在這些位置尋找名為supervisord.conf的配置文件。

  1. $CWD/supervisord.conf
  2. $CWD/etc/supervisord.conf
  3. /etc/supervisord.conf
  4. /etc/supervisor/supervisord.conf (since Supervisor 3.3.0)
  5. ../etc/supervisord.conf (Relative to the executable)
  6. ../supervisord.conf (Relative to the executable)

Debian和Ubuntu版本的Supervisor都包含/etc/supervisor/supervisord.conf搜索路徑洛心。

執(zhí)行echo_supervisord_conf > supervisord.conf可生成完整配置文件固耘,并含有詳盡注釋。示例配置如下所示:

01. [unix_http_server]
02. file=/tmp/supervisor.sock               ; socket文件路徑
03.
04. [supervisord]
05. logfile=/tmp/supervisord.log            ; 主日志文件词身,默認(rèn)位置:$CWD/supervisord.log
06. logfile_maxbytes=50MB                   ; 日志大小厅目,超出后輪轉(zhuǎn),默認(rèn)50MB
07. logfile_backups=10                      ; 日志備份數(shù)量法严,0表示不備份损敷,默認(rèn)10
08. loglevel=info                           ; 日志記錄級(jí)別,默認(rèn)info渐夸,其他級(jí)別debug嗤锉、warn、trace
09. pidfile=/tmp/supervisord.pid            ; pid文件墓塌,默認(rèn)supervisord.pid
10. nodaemon=false                          ; false表示后臺(tái)運(yùn)行,默認(rèn)false
11. minfds=1024                             ; 啟動(dòng)時(shí)最少可用文件描述符數(shù)奥额,默認(rèn)1024
12. minprocs=200                            ; 最少可用進(jìn)程描述符數(shù)苫幢,默認(rèn)200
13.
14. [rpcinterface:supervisor]
15. supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
16.
17. [supervisorctl]
18. serverurl=unix:///tmp/supervisor.sock   ; 使用unix:// URL格式指定socekt文件位置
19.
20. [program:demo]
21. command=/bin/cat                        ; 運(yùn)行的程序,使用相對(duì)路徑可使用參數(shù)
22. directory=/tmp                          ; 執(zhí)行程序前進(jìn)入的目錄
23. autostart=true                          ; 是否隨supervisor同時(shí)啟動(dòng)垫挨,默認(rèn)true
24. startretries=3                          ; 失敗后重試次數(shù)韩肝,默認(rèn)3
25. user=flask                              ; 啟動(dòng)程序用戶的uid
26.
27. [include]
28. files = relative/directory/*.ini        ; 其它配置文件路徑

program配置

上面的示例中的配置文件已經(jīng)包含program配置。若需要配置很多program九榔,則應(yīng)在[include]中引用各程序的配置文件哀峻。下面是flask的配置示例:

1. [program:flask]
2. command=/home/flask/miniconda3/envs/flask/bin/uwsgi /home/flask/FlaskTest/uwsgi.ini
3. directory=/home/flask/FlaskTest
4. autostart=true
5. startretries=3
6. user=flask

運(yùn)行supervisord

執(zhí)行supervisord -c /path_to_conf_file/supervisord.conf使用指定配置文件啟動(dòng)。
執(zhí)行ps -elf | grep supervisor檢查是否啟動(dòng)

啟動(dòng)supervisor時(shí)哲泊,將在默認(rèn)位置(包括當(dāng)前工作目錄)中搜索其配置文件剩蟀。若注重安全性,則可能需要在supervisor命令之使用-c參數(shù)切威,該命令指定配置文件的絕對(duì)路徑育特,以確保不會(huì)從含有惡意配置文件的目錄中啟動(dòng)supervisor。當(dāng)supervisor以root用戶身份啟動(dòng)而沒有使用此-c參數(shù)時(shí)先朦,將發(fā)出警告缰冤。

運(yùn)行supervisorctl

supervisorctl將啟動(dòng)一個(gè)shell犬缨,該shell用來管理由supervisord運(yùn)行的程序。supervisorctl啟動(dòng)時(shí)棉浸,需要使用-c參數(shù)指定與supervisord同樣的配置文件怀薛。否則使用supervisord同樣的查找方式查找配置文件。supervisorctl無參數(shù)啟動(dòng)時(shí)迷郑,進(jìn)入交互shell乾戏。若帶有參數(shù),例如supervisor -c /path_to_conf_file/supervisord.conf stop all三热,則不會(huì)進(jìn)入交互式界面了鼓择。

supervisorctl常用命令如下:

supervisor> update          # 重載新增和修改的配置文件,并重啟受影響的程序
supervisor> update all      # 重載新增和修改的配置文件就漾,并重啟受影響的程序
supervisor> reload          # 重啟supervisord
supervisor> reread          # 重新加載守護(hù)程序的配置文件呐能,而無需添加/刪除(不重新啟動(dòng))
supervisor> restart <name>  # 重啟指定程序,該命令不會(huì)reread配置文件
supervisor> restart all     # 重啟所有程序抑堡,該命令不會(huì)reread配置文件
supervisor> start <name>    # 啟動(dòng)指定程序
supervisor> start all       # 啟動(dòng)所有程序
supervisor> status          # 獲得所有程序狀態(tài)
supervisor> stop <name>     # 停止指定程序
supervisor> stop all        # 停止所有程序
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末摆出,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子首妖,更是在濱河造成了極大的恐慌偎漫,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,311評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件有缆,死亡現(xiàn)場(chǎng)離奇詭異象踊,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)棚壁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門杯矩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人袖外,你說我怎么就攤上這事史隆。” “怎么了曼验?”我有些...
    開封第一講書人閱讀 152,671評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵泌射,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我鬓照,道長(zhǎng)熔酷,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,252評(píng)論 1 279
  • 正文 為了忘掉前任颖杏,我火速辦了婚禮纯陨,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己翼抠,他們只是感情好咙轩,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,253評(píng)論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著阴颖,像睡著了一般活喊。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上量愧,一...
    開封第一講書人閱讀 49,031評(píng)論 1 285
  • 那天钾菊,我揣著相機(jī)與錄音,去河邊找鬼偎肃。 笑死煞烫,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的累颂。 我是一名探鬼主播滞详,決...
    沈念sama閱讀 38,340評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼紊馏!你這毒婦竟也來了料饥?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,973評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤朱监,失蹤者是張志新(化名)和其女友劉穎岸啡,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體赫编,經(jīng)...
    沈念sama閱讀 43,466評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡巡蘸,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,937評(píng)論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了沛慢。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片赡若。...
    茶點(diǎn)故事閱讀 38,039評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖团甲,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情黍聂,我是刑警寧澤躺苦,帶...
    沈念sama閱讀 33,701評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站产还,受9級(jí)特大地震影響匹厘,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜脐区,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,254評(píng)論 3 307
  • 文/蒙蒙 一愈诚、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦炕柔、人聲如沸酌泰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽陵刹。三九已至,卻和暖如春欢嘿,著一層夾襖步出監(jiān)牢的瞬間衰琐,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來泰國(guó)打工炼蹦, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留羡宙,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,497評(píng)論 2 354
  • 正文 我出身青樓掐隐,卻偏偏與公主長(zhǎng)得像狗热,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子瑟枫,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,786評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容