日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

linux脚本重启进程,linux下通过脚本实现自动重启程序

發布時間:2024/10/8 66 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux脚本重启进程,linux下通过脚本实现自动重启程序 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

假定需要實現重啟的程序名為 test ,我們這里通過判斷進程數目來判斷程序是否正常。

ps -ef | grep "$1" | grep -v "grep" | wc –l 是獲取 $1 (本例中為 test )的進程數,腳本根據進程數來決定下一步的操作。通過一個死循環,每隔 1 秒檢查一次系統中的指定程序的進程數。

grep -v "grep":作用:在結果中搜索除 grep之外的部分

-v, --invert-match

Invert the sense of matching, to select non-matching lines.? (-v is specified by POSIX.)

代碼如下:

腳本check

#!/bin/sh

#------------------------------------------------------------------------------

# 函數: 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 -eq 1 ];

then

return 0

else

return 1

fi

}

# 檢查test實例是否已經存在

while [ 1 ] ; do

CheckProcess $1

CheckQQ_RET=$?

if [ $CheckQQ_RET -eq 1 ];

then

# 殺死所有test進程,可換任意你需要執行的操作

killall -9 $1

exec ./$1 &

fi

sleep 1

done

腳本start:

腳本start:

加入limit coredumpsize 102400,設置core file的大小,一旦程序Core Dump,有跡可尋。在該腳本中后臺執行check腳本,可以省去很多麻煩,

PS:對這個腳本的功能 表示懷疑 可能達不到實際需要的效果

經過實際驗證后的可行的腳本如下:

#!/bin/sh

#declare -i g_processID=0

help(){

echo "Usage: $0 "

exit 0

}

# 參數范圍檢查

if [ "$#" != 1 ];

then

help

fi

#檢查進程實例是否已經存在

while [ 1 ]; do

DTTERM=`pgrep ${1}`

if [ -n "$DTTERM" ]

then

echo "process exit and date is: `date`"

#正確輸入信息到日志文件

else

echo "restart process: $1 and date is: `date`"

exec ./${1} &

fi

#監控時間間隔

sleep 1

done

附grep使用方法:

中的grep命令可以在文本中搜索指定的字符串,

摘要

舉例介紹GREP的各種搜索方式,文件名,段落,正則匹配等多種方式的搜索.

假設您正在‘/usr/src/linux/Documentation’目錄下搜索帶字符串‘magic’的文件:

$ grep magic /usr/src//Documentation/*

sysrq.txt:* How do I enable the magic SysRQ key?

sysrq.txt:* How do I use the magic SysRQ key?

其中文件‘sysrp.txt’包含該字符串,討論的是 SysRQ 的功能。

默認情況下,‘grep’只搜索當前目錄。如果此目錄下有許多子目錄,‘grep’會以如下形式列出:

grep: sound: Is a directory

這可能會使‘’的輸出難于閱讀。這里有兩種解決的辦法:

明確要求搜索子目錄:grep -r

或忽略子目錄:grep -d skip

當然,如果預料到有許多輸出,您可以通過 管道 將其轉到‘less’上閱讀:

$ grep magic /usr/src/linux/Documentation/* | less

這樣,您就可以更方便地閱讀。

有一點要注意,您必需提供一個文件過濾方式(搜索全部文件的話用 *)。如果您忘了,‘grep’會一直等著,直到該程序被中斷。如果您遇到了這樣的情況,按 ,然后再試。

下面是一些有意思的命令行參數:

grep -i pattern files :不區分大小寫地搜索。默認情況區分大小寫,

grep -l pattern files :只列出匹配的文件名,

grep -L pattern files :列出不匹配的文件名,

grep -w pattern files :只匹配整個單詞,而不是字符串的一部分(如匹配‘magic’,而不是‘magical’),

grep -C number pattern files :匹配的上下文分別顯示[number]行,

grep pattern1 | pattern2 files :顯示匹配 pattern1 或 pattern2 的行,

grep pattern1 files | grep pattern2 :顯示既匹配 pattern1 又匹配 pattern2 的行。

這里還有些用于搜索的特殊符號:

\< 和 \> 分別標注單詞的開始與結尾。

例如:

grep man * 會匹配 ‘Batman’、‘manic’、‘man’等,

grep ‘\grep ‘\’ 只匹配‘man’,而不是‘Batman’或‘manic’等其他的字符串。

‘^’:指匹配的字符串在行首,

‘$’:指匹配的字符串在行尾,

總結

以上是生活随笔為你收集整理的linux脚本重启进程,linux下通过脚本实现自动重启程序的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。