Advertisement
Guest User

Untitled

a guest
Apr 22nd, 2018
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.94 KB | None | 0 0
  1. #!/bin/bash
  2. set -x
  3. DT=$(date +"%Y-%m-%d-%H")
  4. # Edit These
  5. telnetpw="xxx"
  6. telnetport="80x"
  7. logfile=/home/mg7d/logs/7dtd_serverlog-pvp1-${DT}.log
  8. spath=/home/mg7d/7d2d_pvp1
  9. ename=7DaysToDieServerPvP1.x86_64
  10.  
  11. # Anti Double Execution with PID files.
  12. pidfile=$(basename "$0").pid
  13. echo $$ > "${pidfile}"
  14. trap 'rm -f ${pidfile}; exit;' EXIT SIGHUP SIGINT SIGQUIT SIGTERM
  15. for pid in $(pidof -x "$(basename "$0")"); do
  16.   if [ "${pid}" != $$ ]; then
  17.     echo "startup.sh : Process is already running with PID $pid"
  18.     exit 1
  19.   fi
  20. done
  21.  
  22. #Anti execution of incorrect user.
  23. if [ ! "$(id -u)" = 1x ]; then
  24.   clear
  25.   echo -e "Script must ban run under user x."
  26.   sleep 3
  27.   exit 1
  28. fi
  29. # Attempts graceful shutdown of server before forcing restart.
  30. if pgrep -f "${ename}" > /dev/null; then
  31.  
  32.       ./serverwarnings $telnetport $telnetpw "[00FFFF]Server will restart in 1 minute. Please refrain from using minibikes during this time.[-]" saveworld
  33.         clear
  34.         echo "Server warning has been sent: 60 seconds to restart."
  35.         sleep 30
  36.         echo
  37.  
  38.       ./serverwarnings $telnetport $telnetpw "[00FFFF]Server will restart in 30 seconds. Please feel free to not lose minibikes and get off of them during this time.[-]" saveworld
  39.         clear
  40.         echo "Server warning has been sent: 30 seconds to restart."
  41.         sleep 20
  42.         echo
  43.  
  44.       ./serverwarnings $telnetport $telnetpw "[00FFFF]Server will restart in 10 seconds.[-]" saveworld
  45.         clear
  46.         sleep 10
  47.  
  48.       ./serverwarnings $telnetport $telnetpw "[00FFFF]Server shutting down. GOODBYE CRUEL WORLD![-]" shutdown
  49.       clear
  50.       sleep 3
  51.       echo
  52.  
  53.       killall ${ename}
  54.       # Cycles the log file and keeps old one.
  55.       cd ${spath} || return
  56.       ./${ename} -configfile=serverconfig.xml -logfile "${logfile}" & disown
  57.  
  58.       else
  59.       cd ${spath} && ./${ename} -configfile=serverconfig.xml -logfile "${logfile}" & disown
  60.       exit 1
  61.  
  62. fi
  63. exit 1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement