歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux基礎知識 >> Linux操作下的進程管理利器 Supervise

Linux操作下的進程管理利器 Supervise

日期:2017/3/2 14:47:26   编辑:Linux基礎知識
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 
  #include
  int main()
  {
   int ix = 0;
   for(;; ix++)
   {
   printf("%d\n", ix);
   sleep(1);
   }
   return 0;
  }


 
  編譯test.c輸出為test.
 
  gcc -o test test.c
 
  編寫一個腳本run,來執行test程序,以便supervise進行調用。
 
  
  

#!/bin/sh
  echo "start test!"
  ./test


 
  退到上級目錄,執行 supervise test 看看效果:
 
  cd ……
 
  supervise test
 
  執行killall -9 test,殺死test進程,你會發現supervise會重新啟動test進程。當然如果程序core dump,supervise同樣會重新啟動程序。

Copyright © Linux教程網 All Rights Reserved