shell腳本之測試進程狀態

      根據守護進程的運行狀態來測試網絡的連接情況,這樣的做法遠比直接查找網絡連接狀態的參數要好。下面通過一個腳本來對一個指定的進程名進行狀態測試,並將測試結果顯示到標準輸出上。

代碼:

#!/bin/bash
#
#提示用戶指定一個守護進程名 並將名字暫存到變量n_prog中
echo "check up progress status"
echo -n "Input a name of progress:"
read n_prog
#
#定義一些常量 定義每次發送測試結果的參數到標準輸出的時間間隔
pro_file_name=status
not_connected=65
interval=2
#搜索變量n_prog中指定的守護進程的進程號
pidno=$( ps ax |grep -v "ps ax" |grep -v grep|grep $n_prog|awk '{print $1}')
#
echo "checkingfor \"$n_prog\",please wait..."
echo
#判斷變量pidno的值是否爲空
if [ -z "$pidno" ]
   then
      echo "The status be stopped..."               
      echo "And belong to not connected"
      echo
      exit $not_connected
   else
      echo "The status is running..."
      echo "And belong to connected"
      echo
fi
#
#若指定進程對應的文件存在 但進程沒有處於連接狀態 則執行if結構語句
while [ true ]
      do
         if [ ! -e "/proc/$pidno/$pro_file_name" ]
             then
                echo "But he progress is disconnected"
                echo
                exit $not_connected
         fi
#獲取一些連接的參數 並輸出到標準輸出上
    netstat -s |grep "packets received"
    netstat -s |grep "packets delivered"
#每隔一秒顯示一個參數 相隔的時間由變量$interval定義
    sleep $interval
    echo
done
exit 0
                                                        

使用ls命令測試一下:

wKiom1Mll5zz0rfXAAEVI-9hDiw329.jpg


OVER~~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章