Supervisord快速上手說明

安裝

如果服務(wù)器上有pip空厌,則直接運行命令pip install supervisor安裝宠哄,如果沒有,則需要下載安裝文件房交,之后運行命令python setup.py install安裝。

以上都需要能連接到互聯(lián)網(wǎng)崖堤。

配置

安裝完成之后,執(zhí)行命令echo_supervisord_conf > /etc/supervisord.conf即可生成默認配置文件淹办,如果沒有root權(quán)限,也可以把配置文件保存在用戶自己的目錄下糜烹,運行supervisord時使用-c參數(shù)指定配置文件路徑即可。

supervisor啟動時如果沒有使用-c參數(shù)比肄,則會自動在當(dāng)前目錄下查找配置文件搪花。

示例如下:

supervisord -c supervisord.conf

運行

這里會使用到一個名稱為BINDIR的目錄倚聚,和系統(tǒng)中python的安裝目錄相關(guān)。比如粗卜,安裝python時通過./configure --prefix=/usr/local/py; make; make install命令续扔,則BINDIR就是/usr/local/py/bin识脆。你也可通過查看setup.py install命令的輸出來確認在你的系統(tǒng)中這個目錄具體是什么悉稠。

運行$BINDIR/supervisord就可以啟動了猫牡。它會自動進入后臺進程,關(guān)閉當(dāng)前終端也不會退出拨拓。默認會在當(dāng)前目錄下生成一個日志文件($CWD/supervisor.log)。

在啟動時自動運行

如果你是通過安裝包來安裝的氓栈,supervisord就已安裝到系統(tǒng)服務(wù)里了渣磷。

這里有很多用戶提供的適用于多種操作系統(tǒng)的腳本。

這里還有一些有用的問答授瘦。

配置文件

配置文件的詳細說明醋界,可以看官網(wǎng),這里只給出基本說明提完。

如果在啟動supervisord時沒有通過-c參數(shù)提供配置文件的路徑形纺,supervisord會通過以下順序去查找名為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)

文件格式

supervisord.conf使用Windows的ini配置文件格式氯葬。

環(huán)境變量

可以在配置文件中使用環(huán)境變量挡篓,使用python的字符串表達式語法%(ENV_X)s,示例如下:


[program:example] 
command=/usr/bin/example --loglevel=%(ENV_LOGLEVEL)s 

在上面的例子中%(ENV_LOGLEVEL)s 會被替換成環(huán)境變量LOGLEVEL的值。

注意:這個特性只在3.2版本及更高版本中支持官研,之前的版本只能部分支持秽澳,需要查看對應(yīng)版本的文檔。

配置塊

[supervisord]

[supervisord]配置塊是全局配置戏羽。

配置項 必須 說明 默認值
logfile 日志文件路徑 $CWD/supervisord.log
logfile_maxbytes 日志文件最大大小(后綴可以是KB担神、MBGB) 始花,設(shè)置成0表示不限制 50MB
logfile_backups 日志文件備份數(shù)量妄讯,設(shè)置為0表示不備份 10
loglevel 日志級別,可設(shè)置為critical, error, warn, info, debug, trace, 或 blather之一酷宵,設(shè)置為debug級別時亥贸,會記錄下子進程的`stderr/stdout輸出,這對調(diào)試有問題的進程很有用 info
user user用戶的身份執(zhí)行操作浇垦,切換用戶身份失敗時不會運行程序炕置,必須是以root用戶身份啟動supervisord
environment 設(shè)置supervisord及其子進程運行時的環(huán)境變量,格式KEY="val",KEY2="val2"

示例:


[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"

[program:x]配置塊

配置文件中必須包含至少一個program配置塊男韧,supervisord通過這個配置塊知道要啟動和管理的進程信息朴摊。冒號后面的x表示要啟動的程序的名稱,比如[program:foo]表示一個名稱為foo的程序此虑。這個名稱會在supervisorctl或網(wǎng)頁管理界面中顯示甚纲,名稱當(dāng)中不能包含冒號和括號等特殊字符。

配置項 必須 說明 默認值
command 要執(zhí)行的命令朦前,示例:/path/to/program/name -p "foo bar"
startsecs 程序啟動后需要保持在運行狀態(tài)的時長(單位:秒)介杆。注意:即使程序運行正常退出了,如果不到設(shè)置的時長韭寸,也會被認為是啟動失敗 这溅。 1
startretries 嘗試啟動次數(shù),超過設(shè)置的次數(shù)后棒仍,程序會被標(biāo)記為FATAL狀態(tài) 3
autorestart 當(dāng)處于RUNNING狀態(tài)的程序退出后悲靴,supervisord是否自動重啟之∧洌可選值:false, unexpectedtrue癞尚。false表示不重啟,unexpected表示當(dāng)程序非正常退出時重啟乱陡,true表示總是重啟浇揩。 unexpected
exitcodes 表示程序正常退出的退出碼 0
user user用戶的身份執(zhí)行操作,切換用戶身份失敗時不會運行程序憨颠,必須是以root用戶身份啟動supervisord

示例:


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

[include]配置塊

[include]配置塊表示要包含的外部配置文件胳徽,

配置項 必須 說明 默認值
files 空格分隔的路徑积锅,可以包含* ?通配符,可以是絕對路徑或相對路徑

示例:


[include] 
files = /an/absolute/filename.conf /an/absolute/*.conf foo.conf config??.conf

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末养盗,一起剝皮案震驚了整個濱河市缚陷,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌往核,老刑警劉巖箫爷,帶你破解...
    沈念sama閱讀 211,290評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異聂儒,居然都是意外死亡虎锚,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評論 2 385
  • 文/潘曉璐 我一進店門衩婚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來窜护,“玉大人,你說我怎么就攤上這事非春”浚” “怎么了?”我有些...
    開封第一講書人閱讀 156,872評論 0 347
  • 文/不壞的土叔 我叫張陵税娜,是天一觀的道長。 經(jīng)常有香客問我藏研,道長敬矩,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,415評論 1 283
  • 正文 為了忘掉前任蠢挡,我火速辦了婚禮弧岳,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘业踏。我一直安慰自己禽炬,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,453評論 6 385
  • 文/花漫 我一把揭開白布勤家。 她就那樣靜靜地躺著腹尖,像睡著了一般。 火紅的嫁衣襯著肌膚如雪伐脖。 梳的紋絲不亂的頭發(fā)上热幔,一...
    開封第一講書人閱讀 49,784評論 1 290
  • 那天,我揣著相機與錄音讼庇,去河邊找鬼绎巨。 笑死,一個胖子當(dāng)著我的面吹牛蠕啄,可吹牛的內(nèi)容都是我干的场勤。 我是一名探鬼主播戈锻,決...
    沈念sama閱讀 38,927評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼和媳!你這毒婦竟也來了格遭?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,691評論 0 266
  • 序言:老撾萬榮一對情侶失蹤窗价,失蹤者是張志新(化名)和其女友劉穎如庭,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體撼港,經(jīng)...
    沈念sama閱讀 44,137評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡坪它,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,472評論 2 326
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了帝牡。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片往毡。...
    茶點故事閱讀 38,622評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖靶溜,靈堂內(nèi)的尸體忽然破棺而出开瞭,到底是詐尸還是另有隱情,我是刑警寧澤罩息,帶...
    沈念sama閱讀 34,289評論 4 329
  • 正文 年R本政府宣布嗤详,位于F島的核電站,受9級特大地震影響瓷炮,放射性物質(zhì)發(fā)生泄漏葱色。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,887評論 3 312
  • 文/蒙蒙 一娘香、第九天 我趴在偏房一處隱蔽的房頂上張望苍狰。 院中可真熱鬧,春花似錦烘绽、人聲如沸淋昭。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽翔忽。三九已至,卻和暖如春盏檐,著一層夾襖步出監(jiān)牢的瞬間呀打,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工糯笙, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留贬丛,地道東北人。 一個月前我還...
    沈念sama閱讀 46,316評論 2 360
  • 正文 我出身青樓给涕,卻偏偏與公主長得像豺憔,于是被迫代替她去往敵國和親额获。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,490評論 2 348