4
0

fn_monitorserver 1.7 KB

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