shell腳本 監聽程序並重啓

#!/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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章