Supervisor是一個(gè)進(jìn)程管理工具该编,當(dāng)進(jìn)程中斷的時(shí)候Supervisor能自動(dòng)重新啟動(dòng)它挪蹭。
原因
supervisor啟動(dòng)/執(zhí)行時(shí)依賴/tmp/supervisor.sock文件灭忠,linux會(huì)不定時(shí)刪除tmp下的文件寂恬,導(dǎo)致supervisor無法執(zhí)行重啟命令槽畔。
案例重演
1骤视、在linux的目錄tmp中鞍爱,隨機(jī)刪除了supervisor.sock文件;
2专酗、發(fā)新版本代碼到機(jī)器上睹逃,利用項(xiàng)目中的run.sh腳本重啟進(jìn)程,腳本內(nèi)容是“/data1/program/anaconda/bin/supervisorctl $1 mfx_user”笼裳;
3唯卖、發(fā)版工具吐出異常信息“unix:///tmp/supervisor.sock no such file”,但是檢測(cè)到進(jìn)程存活所以判斷發(fā)版成功躬柬;
結(jié)果:這時(shí)候項(xiàng)目代碼是新的拜轨,但是進(jìn)程卻是舊的。
改進(jìn)
1允青、移除supervisor橄碾,分布式下沒必要使用;
2、更改supervisor的配置文件路徑;