Guest User

pzserver

a guest
Aug 18th, 2023
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 3.10 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. pz_servername="modded-1"
  4.  
  5. # return 0 if server tmux session is up, otherwise return 1
  6. pz_tmux_status () {
  7.     if tmux has-session -t "zomboid" 2>/dev/null; then
  8.         echo 0
  9.     else
  10.         echo 1
  11.     fi
  12. }
  13.  
  14.  
  15. # return 0 if server process is up, otherwise return 1
  16. pz_process_status () {
  17.     if pgrep -x "ProjectZomboid6" >/dev/null; then
  18.         echo 0
  19.     else
  20.         echo 1
  21.     fi
  22. }
  23.  
  24.  
  25. # main function
  26. pz_server () {
  27.  
  28.     if [ ! "$1" ]; then
  29.         echo -e "    \e[96mServer status:\e[0m"
  30.         if [ $(pz_tmux_status) == 0 ]; then
  31.             echo -e "      + Server tmux session:    \e[92mactive\e[0m"
  32.  
  33.             # if tmux session is active, check for running process
  34.             if [ $(pz_process_status) == 0 ]; then
  35.                 pz_pid="$(pidof ProjectZomboid64)"
  36.                 echo -e "      + Server process:         \e[92mactive\e[0m (uptime: $(ps -p $pz_pid -o etime | tail -n 1 | cut -c3-))"
  37.             else
  38.                 echo -e "      + Server process:         \e[91mnot found\e[0m"
  39.             fi
  40.         else
  41.             echo -e "      + Server tmux session:    \e[91mnot found\e[0m"
  42.         fi
  43.     elif [[ "$1" = "-b" ]] || [[ "$1" = "--backup" ]]; then
  44.         echo "Backup function"
  45.     elif [[ "$1" = "-s" ]] || [[ "$1" = "--start" ]]; then
  46.         if [ $(pz_tmux_status) == 0 ]; then
  47.             echo -e "    \e[91mUnable to start:\e[0m Server tmux session already active"
  48.         else
  49.             echo "    Starting server..."
  50.             tmux new -d -s zomboid
  51.             tmux send-keys -t zomboid.0 "cd ~/pzserver" ENTER
  52.             tmux send-keys -t zomboid.0 "./start-server.sh -servername $pz_servername" ENTER
  53.             sleep 30s
  54.             if [ $(pz_process_status) == 0 ]; then
  55.                 echo -e "      \e[92mServer started succesfully.\e[0m"
  56.             else
  57.                 echo -e "      \e[91mServer did not start correctly!\e[0m"
  58.             fi
  59.         fi
  60.     elif [[ "$1" = "-q" ]] || [[ "$1" = "--quit" ]]; then
  61.         if [ ! $(pz_tmux_status) == 0 ]; then
  62.             echo -e "    \e[91mUnable to quit:\e[0m Server tmux session not found"
  63.         else
  64.             echo "    Stopping server..."
  65.             tmux send-keys -t zomboid.0 quit ENTER
  66.             sleep 30s
  67.             if [ $(pz_process_status) == 0 ]; then
  68.                 echo "      Error: process is still running!"
  69.             else
  70.                 tmux send-keys -t zomboid.0 exit ENTER
  71.                 sleep 2s
  72.                 if [ $(pz_tmux_status) == 0 ]; then
  73.                     echo -e "      \e[91mError:\e[0m tmux session did not close correctly!"
  74.                 else
  75.                     echo -e "      \e[92mServer stopped succesfully.\e[0m"
  76.                 fi
  77.             fi
  78.         fi
  79.     else
  80.         echo -e "    \e[91mInvalid option\e[0m"
  81.         echo -e "      \e[96m-s (--start)\e[0m     Start server"
  82.         echo -e "      \e[96m-q (--quit)\e[0m      Stop server"
  83.         echo -e "      \e[96m-b (--backup)\e[0m    Create backup"
  84.     fi
  85.     echo -e "\n"
  86. }
  87.  
  88.  
  89. clear
  90. echo -e "\n  Project Zomboid server control"
  91. echo "  =============================="
  92. echo
  93. pz_server $1
Advertisement
Add Comment
Please, Sign In to add comment