用shell指令碼實現監控程式自動重啟

來源:互聯網
上載者:User

標籤:

很少用shell指令碼,最近在寫一個shell指令碼,遇到一些問題,竟然被折騰了半天。這些錯誤太低級了,不應該.趁現在有時間,將執行該shell的指令碼的整個過程記錄下來,方便以後作為參考。

一、我們先看看編寫的shell指令碼的內容,該shell的作用主要是實現監控某個程式崩潰之後就自動重啟該進程。

#!/bin/bashwhile truedo     procnum=` ps -ef|grep "test"|grep -v grep|wc -l`   if [ $procnum -eq 0 ]; then       /home/test&   fi   sleep 30done


-eq意思是等於0,用於判斷該test是否還在運行狀態。監控/home/test這個程式是否運行。

 

二、由於該程式是window上的編寫的,我們將它(名字用run._start.sh)拷貝到linux下之後需要對它賦予操作的許可權

chmod 777 run_start.sh

 

三、我們將啟動一下該程式

./run_start.sh &

記得加上&,要不然得視窗退了,該指令碼也退出了。

 

三、發現啟動並執行時候有錯誤“-bash: ./run_start.sh: /bin/bash^M: bad interpreter: 沒有那個檔案或目錄” ,根據提示,我以為沒有這個shell沒有安裝,所以找不到“/bin/bash”,其實理解錯誤了,是linux上無法識別window的doc格式。以後記住了,如果遇到這bad interpreter的錯誤,一定要將字元做一下轉換,方法如下:

1)編輯出錯檔案
        vi run_start.sh
 
2)查看該格式(報錯檔案格式是DOS)
        :set ff
3)修改格式
        :set ff=unix
 
4)儲存退出
        :wq!

四、再重新運行指令碼,可以看到正常了

 

 

 

 

用shell指令碼實現監控程式自動重啟

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.