supervise程序管理利器

2021-07-30 17:11:25 字數 2234 閱讀 9704

daemontools是乙個包含了很多管理unix服務的工具的軟體包。其中最核心的工具是supervise,它的功能是監控乙個指定的服務,當該服務程序消亡,則重新啟動該程序。

而要新增讓supervise監控的服務非常容易,只需要新增乙個被監控的服務的目錄,在該目錄中新增啟動伺服器的名字為run的指令碼檔案即可。

supervisor是所有專案的父程序:

supervisor(pid=29208)會成為主程序,管理各個專案的程序。

當專案a(pid=11531)掛掉,supervisor根據設定autorestart、startretries是否重啟。

若要重啟,則會重啟專案a(pid=13357),

若不重啟,則專案a(pid=0)。

當supervisor被kill,管理的專案全部死掉,重啟supervisor(pid=14140),管理的專案都重啟;

在此處我使用supervisor 管理 flume 的agent,當agent 掛掉之後自動重啟。

新建資料夾supervise

4.編輯conf-cc,在conf-cc 最後加上

vi src/conf-cc

-include /usr/include/errno.h

如圖所示

5.執行安裝命令(此命令需要安裝過gcc。如果沒有安裝gcc 需要安裝 gcc )

# package/install
// centos 安裝gcc 命令

yum -y install gcc gcc-c

++ autoconf make

6.檢查安裝

# cat /etc/inittab
如果出現如下圖所示則安裝成功。

supervise新增監控的服務非常容易,只需要新增乙個被監控的服務的目錄,在該目錄中新增啟動伺服器的名字為run的指令碼檔案即可。

此處編寫乙個簡單的c程式,進行測試。

建立乙個test目錄,進入該目錄

編寫簡單測試程式test.c 內容如下:

#include 

#include

int main()

return

0;}

3.編譯test.c輸出為test。

gcc -o test test.c
4.在test目錄下編寫指令碼run(注意:名字必須為run。注意run 指令碼裡不能後台啟動。),來執行test程式,以便supervise進行呼叫

#!/bin/sh

echo

"start test!"

./test

5.啟動

nohup supervise test/  > /dev/

null

2>&1 &

6.檢查test程序

ps -ef| grep "test"
如下圖:

此時我門模擬殺死 test 程序。則test程序會重啟。

(我門可以看到重啟的test 程序為 21099)

如果要殺死 test程序怎麼辦呢?

很簡單先殺死 supervise 的守護程序就好了。也就是殺死上圖的 21080 程序。殺死守護程序以後再殺死test 程序就不會重啟test 程序了。

好了今天就說到這裡吧。

Linux下的利器 supervise

supervise是daemontools 的乙個工具,可以用來監控管理 unix 下的應用程式運 況,在應用程式出現異常時,supervise 可以重新啟動指定程式。本文簡單介紹一下 supervise 的安裝和使用。建立 pacakage 目錄 你可以建立任意目錄,這裡使用 package 只是...

Linux下的利器 supervise

supervise是daemontools的乙個工具,可以用來監控管理unix下的應用程式運 況,在應用程式出現異常時,supervise可以重新啟動指定程式。本文簡單介紹一下supervise的安裝和使用。一 安裝 建立 pacakage目錄 你可 supervise是daemontools 的乙...

supervise 程序監控

daemontools讓程序保持通話 linux下程序有時候會莫名的斷掉,我在使用舊版mysql proxy的時候就時常被問題困惱,俗話說 不怕賊偷,就怕賊惦記著 程序斷掉並不可怕,可怕的是沒有任何先兆,稀里糊塗的就斷了,究其原因,一來可能是誤操作引起來的,二來可能是軟體本身的bug造成的,三來也可...