Linux下的利器——supervise


supervise是daemontools的一個工具,可以用來監控管理unix下的應用程序運行情況,在應用程序出現異常時,supervise可以重新啓動指定程序。本文簡單介紹一下supervise的安裝和使用。

一、      安裝

創建 /pacakage目錄(你可以創建任意目錄,這裏使用package只是爲了保持與英文作者的一致):

 

 

 

mkdir -p /package
 
chmod 1755 /package
 

cd /package

 

 

 

下載daemontools-0.76.tar.gz/package目錄,解壓該包。

 

 

 

 

tar xvzf daemontools-0.76.tar.gz

 

 

 

cd admin/daemontools-0.76

 

 

 

 編譯並安裝daemontools程序

 

 

 

 

package/install

 

 

 

 二、使用supervise程序進行程序管理監控

 

 

 

       supervise的執行命令是supervise Path ,其中Path 是指定路徑,可以是相對路徑,也可以是絕對路徑。在Path路徑下,必須有一個run的腳本,supervise調用的就是這個腳本,並監控管理該腳本中運行的程序。

 

 

 

supervise的一個重要的功能就是可以檢測出run腳本中執行的程序是否正常工作,若發現其已經死掉,supervise將會重新執行run腳本,重新啓動指定程序。這對於很多服務端程序來說是十分必要的,沒有人願意在深夜2點的時候從被窩裏爬出來重新啓動服務器。

 

 

下面是一個簡單使用supervise的例子。

三、例子

       假定已經安裝好daemontools,建立一個test目錄,進入該目錄

mkdir test

 

cd test

 

 

 

 在該目錄下寫一個簡單測試程序test.c

      

 

#include<stdio.h>

 

 

 

#include<stdlib.h>

 

 

 

 

 

 

int main()

 

 

 

{

 

 

 

        intix = 0;

 

 

 

        for(;;ix++)

 

 

 

        {

 

 

 

                printf("%d", ix);

 

 

 

                sleep(1);

 

 

 

        }

 

 

 

        return0;

 

 

 

}

 

 

 

        編譯test.c輸出爲test

 

 

 

 

gcc -o test test.c

 

 

 

 

 

       編寫一個腳本run,來執行test程序,以便supervise進行調用。

      

 

#!/bin/sh

 

 

 

echo "start test!"

 

 

 

./test

 

 

 

        退到上級目錄,執行 supervisetest 看看效果:

      

 

cd ..

 

 

 

supervise test

 

 

 

        執行killall -9 test,殺死test進程,你會發現supervise會重新啓動test進程。當然如果程序core dumpsupervise同樣會重新啓動程序。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章