1. 程式人生 > >linux下監視程序 崩潰掛掉後自動重啟的shell指令碼

linux下監視程序 崩潰掛掉後自動重啟的shell指令碼

如何保證服務一直執行?如何保證即使服務掛掉了也能自動重啟?在寫服務程式時經常會碰到這樣的問題。在Linux系統中,強大的shell就可以很靈活的處理這樣的事務。
下面的shell通過一個while-do迴圈,用ps -ef|grep 檢查loader程序是否正在執行,如果沒有執行,則啟動,這樣就保證了崩潰掛掉的程序重新被及時啟動。
必須注意兩點:
1、ps |grep 一個程序時必須加上其路勁,否則容易grep到錯誤的結果;
2、必須用 -v 從結果中去除grep命令自身,否則結果非空。

 
#!/bin/sh 
#===================== 
#YuanHui.HE 
#
[email protected]
#===================== while : do echo "Current DIR is " $PWD stillRunning=$(ps -ef |grep "$PWD/loader" |grep -v "grep") if [ "$stillRunning" ] ; then echo "TWS service was already started by another way" echo "Kill it and then startup by this shell, other wise this shell will loop out this message annoyingly" kill -9 $pidof $PWD/loader else echo "TWS service was not started" echo "Starting service ..." $PWD/loader echo "TWS service was exited!" fi sleep 10 done

如果啟動此shell時發現程序已經存在,說明以別的方式啟動了程序而不是此shell,那麼它會持續提醒找到程序,解決辦法是,要麼只用此shell啟動服務,要麼一經發現以其他方式啟動的服務即kill掉,上面的語句就是這麼幹的:
kill -9 $pidof $PWD/loader



相關推薦

linux監視程序 崩潰自動shell指令碼

如何保證服務一直執行?如何保證即使服務掛掉了也能自動重啟?在寫服務程式時經常會碰到這樣的問題。在Linux系統中,強大的shell就可以很靈活的處理這樣的事務。 下面的shell通過一個while-do迴圈,用ps -ef|grep 檢查loader程序是否正在執行,

如何監視一個程序崩潰自動

如何保證服務一直執行?如何保證即使服務掛掉了也能自動重啟?在寫服務程式時經常會碰到這樣的問題。  shell指令碼 下面的shell通過一個while-do迴圈,用ps -ef|grep 檢查loader程序是否正在執行,如果沒有執行,則啟動,這樣就保證了崩潰掛掉的程序重新被及時啟動。 必須注意兩點: 1

監控伺服器程式,自動

1、定時呼叫ps,檢查程式是否活著。如果不在了就啟動程式 #!/bin/bash name=$1 while true do         c=`ps -x | grep $name | grep -v grep

如何實現Spring Cloud微服務之後自動

微服務遲早是要部署在Linux系統上的,當網路不穩定就會掛掉,但是掛掉後手動去重啟是十分麻煩的,我們的SC微服務雖然強大,但是還沒有自行起死回生的本事,需要藉助於外部命令來實現自動重啟。下面就以Eureka為例配合shell指令碼來實現自動重啟。 1、啟動一臺

linux檢測程式是否自動重新執行的指令碼

編寫一個指令碼替代應用程式的執行,也就是通過啟動指令碼來啟動程式,並監測程式是否掛掉,若掛掉則重新執行 #!/bin/sh while true do ps -ef | grep "$PWD/app/auto_run.sh" | grep -v "grep" if [

arm linux 使用monit監控程式在崩潰自動它們

在arm linux上有很多程式想實現長期穩定執行,但是很多人寫的程式碼不健壯,偶爾會出現崩潰的問題,需要在崩潰以後能自動重啟,可能有些人使用了shell指令碼做個死迴圈來實現,其實沒必要這麼費勁,使用monit來做就可以,monit主頁是一隻鬥牛犬,大概是看門狗的意思。

Linux 程序終止自動

/opt/a.sh #! /bin/bash ps -ef | grep python3 a.py | grep -v grep | grep python3 if [ $? -ne 0 ] then cd /opt/a.py && python3 a.py else echo "runni

LinuxTomcat服務監聽,關閉自動

本教程用來解決,linux下tomcat服務,因為各種原因異常關閉後,實現自動重啟服務,保證服務可用 還用到一個自啟動指令碼 #!/bin/sh # func:自動監控tomcat指令碼並且執行

監測指令碼程序,結束自動

①新建一個指令碼 #!/bin/bash count=`ps -fe |grep "/opt/AutowaterBJ/start.php" | grep -v "grep" | grep "

android app崩潰自動

1.偶然發現專案因為一場崩潰後,自動重啟到上一介面。因為未知原因,重啟後fragment顯示有誤,需要殺死程序後才能正常適應app。悲劇的是,因為馬上就重啟程序 了,導致LOG中看不到異常原因。非常不好除錯。 2.經過查資料得知,這些都是google的一種策略,當app崩潰

20、怎麼保證redis之後再資料可以進行恢復?

1、面試題 redis的持久化有哪幾種方式?不同的持久化機制都有什麼優缺點?持久化機制具體底層是如何實現的? 2、面試官心裡分析 redis如果僅僅只是將資料快取在記憶體裡面,如果redis宕機了,再重啟,記憶體裡的資料就全部都弄丟了啊。你必須得用redis的持久化機制,將資料寫入記憶體

linux程序監控shell指令碼

本文主要內容: shell日誌date format shell poll監控重新執行,掛了則重啟程式 前段時間工作需要使用python+scrapy寫了個新聞輿情爬蟲系統,伺服器上面跑了大概5

linux統計文字行數的各種方法之使用shell指令碼統計

上一篇講的都是統計單個檔案的方法,直接在命令列執行就可以。現在試試指令碼的方式,統計多個檔案的行數 一、統計目錄下所有檔案的檔案數及所有行數 指令碼暫時命名為count.sh,程式碼如下: #!/bin/bash # 計算當前或者指定目錄的檔案數目及所有檔案的行數 fileCou

linux 程序守護,監控並自動

1、[下載](http://cr.yp.to/daemontools.html daemontools)daemontools安裝包 2、安裝 tar xvzf daemontools-0.76.tar.gz cd admin/daemontools-0.76 package/in

linuxnginx的基本部署命令(關閉

啟動命令: nginx -c /usr/local/nginx/conf/nginx.conf 檢視nginx主程序 ps -ef | grep nginx 停止命令 從容停止Nginx:

Linux-- 簡單的程式守護指令碼,程式異常退出自動

#!/bin/sh while true do ps -ef | grep "test(程式名)" | grep -v "grep" if ["$?" -eq 0] then ./test echo "wath process has been restarted! "

用monit監控mongodb,崩潰自動mongdb

開發十年,就只剩下這套架構體系了! >>>   

觀察者模式實際應用:監聽線程,意外退出線程自動

lee text 實時 之間 最終 ren tap instance and 摘要:  觀察者模式,定義對象之間的一種一對多的依賴關系,當對象的狀態發生改變時,所有依賴於它的對象都得到通知並且被自動更新。觀察者模式在JDK中有現成的實現,java.util.Obsera

CentOS kernel panic自動

崩潰 導致 服務器 ger 收集 信息 正常 自動重啟 entos   這段時間公司有幾臺老化的服務器老是莫名其妙宕機,最後查看日誌都是一些類似“I/O error”的錯誤導致的kernel panic。由於這幾臺機器跑的也不是什麽重要的業務,為了省事想幹脆把內核設置為內核

Node.js熱部署代碼,實現修改代碼自動服務方便實時調試

iso 用戶 使用方法 了解 super 幫助 應用 https js文件 寫PHP等腳本語言的時候,已經習慣了修改完代碼直接打開瀏覽器去查看最新的效果。而Node.js 只有在第一次引用時才會去解析腳本文件,以後都會直接訪問內存,避免重復載入,這種設計雖然有利於提高性能,