Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- pz_servername="modded-1"
- # return 0 if server tmux session is up, otherwise return 1
- pz_tmux_status () {
- if tmux has-session -t "zomboid" 2>/dev/null; then
- echo 0
- else
- echo 1
- fi
- }
- # return 0 if server process is up, otherwise return 1
- pz_process_status () {
- if pgrep -x "ProjectZomboid6" >/dev/null; then
- echo 0
- else
- echo 1
- fi
- }
- # main function
- pz_server () {
- if [ ! "$1" ]; then
- echo -e " \e[96mServer status:\e[0m"
- if [ $(pz_tmux_status) == 0 ]; then
- echo -e " + Server tmux session: \e[92mactive\e[0m"
- # if tmux session is active, check for running process
- if [ $(pz_process_status) == 0 ]; then
- pz_pid="$(pidof ProjectZomboid64)"
- echo -e " + Server process: \e[92mactive\e[0m (uptime: $(ps -p $pz_pid -o etime | tail -n 1 | cut -c3-))"
- else
- echo -e " + Server process: \e[91mnot found\e[0m"
- fi
- else
- echo -e " + Server tmux session: \e[91mnot found\e[0m"
- fi
- elif [[ "$1" = "-b" ]] || [[ "$1" = "--backup" ]]; then
- echo "Backup function"
- elif [[ "$1" = "-s" ]] || [[ "$1" = "--start" ]]; then
- if [ $(pz_tmux_status) == 0 ]; then
- echo -e " \e[91mUnable to start:\e[0m Server tmux session already active"
- else
- echo " Starting server..."
- tmux new -d -s zomboid
- tmux send-keys -t zomboid.0 "cd ~/pzserver" ENTER
- tmux send-keys -t zomboid.0 "./start-server.sh -servername $pz_servername" ENTER
- sleep 30s
- if [ $(pz_process_status) == 0 ]; then
- echo -e " \e[92mServer started succesfully.\e[0m"
- else
- echo -e " \e[91mServer did not start correctly!\e[0m"
- fi
- fi
- elif [[ "$1" = "-q" ]] || [[ "$1" = "--quit" ]]; then
- if [ ! $(pz_tmux_status) == 0 ]; then
- echo -e " \e[91mUnable to quit:\e[0m Server tmux session not found"
- else
- echo " Stopping server..."
- tmux send-keys -t zomboid.0 quit ENTER
- sleep 30s
- if [ $(pz_process_status) == 0 ]; then
- echo " Error: process is still running!"
- else
- tmux send-keys -t zomboid.0 exit ENTER
- sleep 2s
- if [ $(pz_tmux_status) == 0 ]; then
- echo -e " \e[91mError:\e[0m tmux session did not close correctly!"
- else
- echo -e " \e[92mServer stopped succesfully.\e[0m"
- fi
- fi
- fi
- else
- echo -e " \e[91mInvalid option\e[0m"
- echo -e " \e[96m-s (--start)\e[0m Start server"
- echo -e " \e[96m-q (--quit)\e[0m Stop server"
- echo -e " \e[96m-b (--backup)\e[0m Create backup"
- fi
- echo -e "\n"
- }
- clear
- echo -e "\n Project Zomboid server control"
- echo " =============================="
- echo
- pz_server $1
Advertisement
Add Comment
Please, Sign In to add comment