mysql用supervisor管理_Supervisor使用详解
一、supervisor簡(jiǎn)介
Supervisor是用Python開(kāi)發(fā)的一套通用的進(jìn)程管理程序,能將一個(gè)普通的命令行進(jìn)程變?yōu)楹笈_(tái)daemon,并監(jiān)控進(jìn)程狀態(tài),異常退出時(shí)能自動(dòng)重啟。它是通過(guò)fork/exec的方式把這些被管理的進(jìn)程當(dāng)作supervisor的子進(jìn)程來(lái)啟動(dòng),這樣只要在supervisor的配置文件中,把要管理的進(jìn)程的可執(zhí)行文件的路徑寫(xiě)進(jìn)去即可。也實(shí)現(xiàn)當(dāng)子進(jìn)程掛掉的時(shí)候,父進(jìn)程可以準(zhǔn)確獲取子進(jìn)程掛掉的信息的,可以選擇是否自己?jiǎn)?dòng)和報(bào)警。supervisor還提供了一個(gè)功能,可以為supervisord或者每個(gè)子進(jìn)程,設(shè)置一個(gè)非root的user,這個(gè)user就可以管理它對(duì)應(yīng)的進(jìn)程。
注:本文以centos7為例。
二、supervisor安裝
配置好yum源后,可以直接安裝
Debian/Ubuntu可通過(guò)apt安裝
pip安裝
easy_install安裝
三、supervisor使用
supervisor配置文件:/etc/supervisor/supervisord.conf
注:supervisor的配置文件默認(rèn)是不全的,不過(guò)在大部分默認(rèn)的情況下,上面說(shuō)的基本功能已經(jīng)滿(mǎn)足。
子進(jìn)程配置文件路徑:/etc/supervisord.d/
注:默認(rèn)子進(jìn)程配置文件為ini格式,可在supervisor主配置文件中修改。
四、配置文件說(shuō)明
supervisor.conf配置文件說(shuō)明:
子進(jìn)程配置文件說(shuō)明:
給需要管理的子進(jìn)程(程序)編寫(xiě)一個(gè)配置文件,放在/etc/supervisor.d/目錄下,以.ini作為擴(kuò)展名(每個(gè)進(jìn)程的配置文件都可以單獨(dú)分拆也可以把相關(guān)的腳本放一起)。如任意定義一個(gè)和腳本相關(guān)的項(xiàng)目名稱(chēng)的選項(xiàng)組(/etc/supervisord.d/test.conf):
子進(jìn)程配置示例:
五、supervisor命令說(shuō)明
常用命令
注:把es換成all可以管理配置中的所有進(jìn)程。直接輸入supervisorctl進(jìn)入supervisorctl的shell交互界面,此時(shí)上面的命令不帶supervisorctl可直接使用。
注意事項(xiàng)
使用supervisor進(jìn)程管理命令之前先啟動(dòng)supervisord,否則程序報(bào)錯(cuò)。
使用命令supervisord -c /etc/supervisor/supervisord.conf啟動(dòng)。
若是centos7:
常見(jiàn)問(wèn)題
unix:///var/run/supervisor.sock no such file
問(wèn)題描述:安裝好supervisor沒(méi)有開(kāi)啟服務(wù)直接使用supervisorctl報(bào)的錯(cuò)
解決辦法:supervisord -c /etc/supervisor/supervisord.conf
command中指定的進(jìn)程已經(jīng)起來(lái),但supervisor還不斷重啟
問(wèn)題描述:command中啟動(dòng)方式為后臺(tái)啟動(dòng),導(dǎo)致識(shí)別不到pid,然后不斷重啟,這里使用的是elasticsearch,command指定的是$path/bin/elasticsearch -d
解決辦法:supervisor無(wú)法檢測(cè)后臺(tái)啟動(dòng)進(jìn)程的pid,而supervisor本身就是后臺(tái)啟動(dòng)守護(hù)進(jìn)程,因此不用擔(dān)心這個(gè)
啟動(dòng)了多個(gè)supervisord服務(wù),導(dǎo)致無(wú)法正常關(guān)閉服務(wù)
問(wèn)題描述:在運(yùn)行supervisord -c /etc/supervisor/supervisord.conf之前,直接運(yùn)行過(guò)supervisord -c /etc/supervisord.d/xx.conf導(dǎo)致有些進(jìn)程被多個(gè)superviord管理,無(wú)法正常關(guān)閉進(jìn)程。
解決辦法:使用ps -fe | grep supervisord查看所有啟動(dòng)過(guò)的supervisord服務(wù),kill相關(guān)的進(jìn)程。
總結(jié)
以上是生活随笔為你收集整理的mysql用supervisor管理_Supervisor使用详解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: autojs之提取text中的红色文字(
- 下一篇: mysql数据改电话号码_mysql 里