#!/bin/bash
echo "開始"
echo "`date "+%Y-%m-%d %H:%M:%S"` 正在殺進程..."
ps -aux | grep 你的程序名.py | grep -v grep | awk '{print $2}' | xargs kill -9
echo "`date "+%Y-%m-%d %H:%M:%S"` 進程已殺死!"
echo "`date "+%Y-%m-%d %H:%M:%S"` 正在重啓服務..."
nohup python3 你的程序名.py >/dev/null 2>&1 &
echo "`date "+%Y-%m-%d %H:%M:%S"` 服務重啓完畢!"
# 函數: CheckProcess
# 功能: 檢查一個進程是否存在
# 參數: $1 --- 要檢查的進程名稱
# 返回: 如果存在返回0, 否則返回1.
#------------------------------------------------------------------------------
CheckProcess()
{
# 檢查輸入的參數是否有效
if [ "$1" = "" ];
then
return 1
fi
#$PROCESS_NUM獲取指定進程名的數目,爲1返回0,表示正常,不爲1返回1,表示有錯誤,需要重新啓動
PROCESS_NUM=`ps -ef | grep "$1" | grep -v "grep" | wc -l`
if [ $PROCESS_NUM -ge 1 ]; # 裏面加了多進程大於等於1,一個進程是eq
then
return 0
else
return 1
fi
}
while [ 1 ] ; do
CheckProcess "你的程序名"
Check_RET=$?
echo $Check_RET -eq 1
if [ $Check_RET -eq 1 ];
then
echo "服務不正常"
ps -aux | grep 你的程序名.py | grep -v grep | awk '{print $2}' | xargs kill -9
nohup python3 你的程序名.py >/dev/null 2>&1 &
else
echo "服務正常"
fi
sleep 10
done
shell腳本 監聽程序並重啓
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.