2011-04-26 86 views
0

我有一個依賴於MySQL的進程,如果沒有它,就無法工作。有沒有辦法掛鉤到MySQL,這樣我可以觸發這個過程重新啓動每次重新啓動MySQL?現在,我正在手動重啓進程(MySQL發生故障時會崩潰)以重新啓動進程。MySQL - 開始掛鉤

+0

什麼樣的過程?這是一項服務嗎?它是客戶端應用程序嗎?網絡服務? – xecaps12 2011-04-26 04:13:19

+0

這是一項服務,具體來說,是Celery(Python),當MySQL關閉時會停止運行。 – jeffreyveon 2011-04-26 05:45:06

回答

0

這可能是一種「鉤入mysql」的方法來做到這一點,但你並不需要。我假定您正在運行Linux或UNIX變體,並且您的MySQL實例正在偵聽默認端口(3306)。然後shell命令:

的netstat -an | grep的3306

會給你回一個單一的線,而MySQL的過程時,沒有輸出時,它的下降。

所以寫一個Python腳本來運行該命令每隔T秒,然後重新啓動過程中,如果出現空的,這樣的事情:

#!/usr/bin/python 
import time 
import commands 


while 1: 
    if not commands.getoutput("netstat -an |grep 3306"): 
     # restart your process 
    time.sleep(10) 

這應該做到這一點。