歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> SHELL編程 >> Linux Shell 進程監控

Linux Shell 進程監控

日期:2017/3/1 11:09:19   编辑:SHELL編程

程序寫好了,得監控上,嘿嘿。研究出來如下代碼,進行使用,嘿嘿。 我這裡每個進程只需要一個實例,即使實例有多個,也會使用不同的配置文件區分開來,否則不知道程序的哪個實例掛了, 不說了,附上代碼,自己看吧。重點在config那塊兒,我寫的是相對目錄哦。嘿嘿

  1. #!/bin/bash
  2. #func checkProcessName
  3. # param1 threadname param2 user
  4. CheckProcess()
  5. {
  6. PROCESS_NAME="$1"
  7. if [ "$PROCESS_NAME" = "" ];then
  8. return 1;
  9. fi
  10. USER_NAME="$2"
  11. PROCESS_NUM=0
  12. COMMAND_STR=""
  13. if [ "$USER_NAME" = "" ];then
  14. PROCESS_NUM=`ps -elf|grep "${PROCESS_NAME}" |grep -v "grep"|wc -l`
  15. else
  16. PROCESS_NUM=`ps -u "${USER_NAME}" -lf |grep "${PROCESS_NAME}" |grep -v "grep"|wc -l`
  17. fi
  18. if [ ${PROCESS_NUM} -eq 1 ];then
  19. return 0
  20. else
  21. return 1
  22. fi
  23. }
  24. #config
  25. process=(\
  26. "./servers servers.ini"\
  27. "./serverc serverc.ini"\
  28. )
  29. # "./baike_fspage baike_fspage.ini"\
  30. processdir=(\
  31. "/server/servers"\
  32. "/server/serverc"\
  33. )
  34. # "/baiketrans" \
  35. curdir=`pwd`
  36. #main
  37. while [ 1 ] ;do
  38. sleep 10
  39. for i in $( seq 0 $[${#process[@]}-1] )
  40. do
  41. CheckProcess "${process[$i]}" "jianghi"
  42. notLive=$?
  43. if [ $notLive -eq 1 ];
  44. then
  45. cd ${curdir}${processdir[$i]}
  46. if [ $? -eq 0 ];then
  47. ./startup.sh
  48. echo "[" `date "+%Y/%m/%d %k:%M:%S"` "]" `pwd`/startup.sh "start..."
  49. else
  50. echo "[" `date "+%Y/%m/%d %k:%M:%S"` "] not find ${curdir}${processdir[$i]}/startup.sh "
  51. fi
  52. fi
  53. done
  54. done
Copyright © Linux教程網 All Rights Reserved