国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 開發(fā) > Linux Shell > 正文

linux下監(jiān)視進(jìn)程 崩潰掛掉后自動(dòng)重啟的shell腳本

2020-07-27 19:23:04
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
=================================================
本文為khler原作,轉(zhuǎn)載必須確保本文完整并完整保留原作者信息及本文原始鏈接
Author: HeYuanHui
E-mail: khler@163.com
QQ: 23381103
MSN: pragmac@hotmail.com
=================================================

如何保證服務(wù)一直運(yùn)行?如何保證即使服務(wù)掛掉了也能自動(dòng)重啟?在寫服務(wù)程序時(shí)經(jīng)常會(huì)碰到這樣的問(wèn)題。在Linux系統(tǒng)中,強(qiáng)大的shell就可以很靈活的處理這樣的事務(wù)。
下面的shell通過(guò)一個(gè)while-do循環(huán),用ps -ef|grep 檢查loader進(jìn)程是否正在運(yùn)行,如果沒(méi)有運(yùn)行,則啟動(dòng),這樣就保證了崩潰掛掉的進(jìn)程重新被及時(shí)啟動(dòng)。
必須注意兩點(diǎn):
1、ps |grep 一個(gè)進(jìn)程時(shí)必須加上其路勁,否則容易grep到錯(cuò)誤的結(jié)果;
2、必須用 -v 從結(jié)果中去除grep命令自身,否則結(jié)果非空。
復(fù)制代碼 代碼如下:

#!/bin/sh
#=====================
#YuanHui.HE
#khler@163.com
#=====================
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

如果啟動(dòng)此shell時(shí)發(fā)現(xiàn)進(jìn)程已經(jīng)存在,說(shuō)明以別的方式啟動(dòng)了進(jìn)程而不是此shell,那么它會(huì)持續(xù)提醒找到進(jìn)程,解決辦法是,要么只用此shell啟動(dòng)服務(wù),要么一經(jīng)發(fā)現(xiàn)以其他方式啟動(dòng)的服務(wù)即kill掉,上面的語(yǔ)句就是這么干的:
kill -9 $pidof $PWD/loader
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 浦东新区| 台中县| 成武县| 阿克| 轮台县| 贺州市| 遂宁市| 广水市| 安陆市| 永川市| 临武县| 五常市| 莆田市| 邯郸县| 铜梁县| 阆中市| 太和县| 罗定市| 阳江市| 嘉禾县| 分宜县| 海伦市| 永安市| 柘城县| 通河县| 永吉县| 芷江| 静海县| 武义县| 涪陵区| 红河县| 子长县| 安泽县| 甘南县| 合肥市| 桑植县| 龙山县| 锡林郭勒盟| 乌拉特中旗| 临沭县| 大悟县|