fn_monitor 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. #!/bin/bash
  2. # LGSM fn_monitor function
  3. # Author: Daniel Gibbs
  4. # Website: http://danielgibbs.co.uk
  5. # Version: 210115
  6. # Description: Monitors server by checking for running proccesses
  7. # then passes to fn_monitor_query.
  8. local modulename="Monitor"
  9. fn_check_root
  10. fn_check_systemdir
  11. fn_check_ip
  12. fn_details_config
  13. fn_printdots "${servername}"
  14. fn_scriptlog "${servername}"
  15. sleep 1
  16. if [ ! -f "${lockselfname}" ]; then
  17. fn_printinfo "Disabled: No lock file found"
  18. fn_scriptlog "Disabled: No lock file found"
  19. sleep 1
  20. echo -en "\n"
  21. echo "To enable monitor run ${selfname} start"
  22. exit
  23. fi
  24. updatecheck=$(ps -ef|grep "${selfname} update"|grep -v grep|wc -l)
  25. if [ "${updatecheck}" = "0" ]; then
  26. fn_printdots "Checking session: CHECKING"
  27. fn_scriptlog "Checking session: CHECKING"
  28. sleep 1
  29. tmuxwc=$(tmux list-sessions 2>&1|awk '{print $1}'|grep -v failed|grep -E "^${servicename}:"|wc -l)
  30. if [ "${tmuxwc}" -eq 1 ]; then
  31. fn_printok "Checking session: OK"
  32. fn_scriptlog "Checking session: OK"
  33. sleep 1
  34. echo -en "\n"
  35. fn_monitor_query
  36. exit
  37. else
  38. fn_printfail "Checking session: FAIL"
  39. fn_scriptlog "Checking session: FAIL"
  40. sleep 1
  41. echo -en "\n"
  42. if [ "${emailnotification}" = "on" ]; then
  43. subject="${servicename} Monitor - Starting ${servername}"
  44. failurereason="${servicename} process not running"
  45. actiontaken="${servicename} has been restarted"
  46. fn_email
  47. fi
  48. fn_scriptlog "Monitor is starting ${servername}"
  49. fn_start
  50. fi
  51. else
  52. fn_printinfonl "SteamCMD is currently checking for updates"
  53. fn_scriptlog "SteamCMD is currently checking for updates"
  54. sleep 1
  55. fn_printinfonl "When update is complete ${servicename} will start"
  56. fn_scriptlog "When update is complete ${servicename} will start"
  57. sleep 1
  58. fi