44 lines
799 B
Bash
44 lines
799 B
Bash
#!/bin/bash
|
|
|
|
# Variables - Change these for each game server
|
|
game="rimworld"
|
|
GAME_DIR="/home/$game"
|
|
log_file="$GAME_DIR/script.log"
|
|
|
|
|
|
|
|
# Functions
|
|
start_server() {
|
|
# Kill any previous screen sessions
|
|
screen -X -S "$game" quit > /dev/null 2>&1
|
|
|
|
# Start the screen and run the server
|
|
cd "$GAME_DIR" || exit 1
|
|
screen -dmS "$game" ./serverupdate.sh && echo "Restarted at: $(date)" >> "$log_file"
|
|
}
|
|
|
|
|
|
|
|
# Run the screen command to stop the server
|
|
output=$(screen -p 0 -S "$game" -X eval "stuff quit\015" 2>&1)
|
|
|
|
# Check if the output contains the "No screen session found" message
|
|
if [[ $output == *"No screen session found."* ]]; then
|
|
echo "Starting Server"
|
|
start_server
|
|
exit
|
|
else
|
|
echo "Saving World, Please wait."
|
|
echo "This takes some time!"
|
|
sleep 30
|
|
start_server
|
|
fi
|
|
|
|
exit
|
|
|
|
|
|
|
|
|
|
|
|
|