歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux下使用Supervise

Linux下使用Supervise

日期:2017/2/28 16:31:13   编辑:Linux教程

今天公司一個項目中為了保護某個進程不因意外死掉,所以需要保護,用supervise的意思是監督是否死掉了,如果死掉了,則通過run腳本啟動。新接觸這個東西,不會用,上網一搜,額滴神啊,全是那一個,什麼test.c的那個。

先說一下我是怎麼做的,假設你要保護的進程叫Process,那麼一定要將這個程序放到一個名為Process的目錄下(對了,就是要文件名和文件夾名一致,因為supervise命令指定的是文件夾),同時和Process文件(不是文件夾)一起還要有一個叫run的文件,就是一個簡單的腳本,裡邊寫的是在進程掛掉後執行的動作,通常是再次情動該進程。假如你的文件所在的絕對路徑為/root/testdir/Process/Process,那麼最簡單的run腳本就是

#!/bin/bash

/root/testdir/Process/Process

最主要的是supervise設置,這個東西就是那個test.c用例讓我不爽的地方,什麼都沒說明白,或者說沒說全。開始我使用命令supervise /root/testdir/Process/Process 可是這個命令似乎是個死循環(其實不是,只是一直運行不會結束),然後我再打開一個終端,pgrep Process(得到該序的進程號),kill id(id為剛才命令顯示的數字),在看pgrep Process,進程號改變了,這說明殺掉了該進程後supervise再次啟動了該進程。可是問題是,那個supervise程序一直在運行著啊。如果CTRL+C關掉呢,重復上邊檢查進程的操作,果然Process不在受supervise保護,這個該怎麼辦呢。正當我對此無能為力的時候想起了同事的一句話,把文件鏈接到service以下,開始他說這個我沒聽懂。這會再試試

ln -s /root/testdir/Process /service/Process

OK!這是我赫然的發現Process進程起來了,可是我沒有使用supervise命令啊?全部刪除再來一遍,同樣Process進程得到了保護。總的來說就是,建立Process文件夾,process文件和run文件,然後做的就是鏈接。

由於開始是在公司的開發環境上,我不知道是否有其他進程執行了supervise使鏈接到service下的文件都得到保護還是,哪位朋友如果知道可以告訴我,不勝感激!

Copyright © Linux教程網 All Rights Reserved