build files for making podman containers
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

64 lines
1.4 KiB

#!/bin/bash
say() {
echo "$1"
mcbe-exec say "$1"
}
# first argument gives if server should halt or restart
if [[ -z $1 || $1 == "-h" ]]; then
restart=1
elif [[ $1 == "-r" ]]; then
restart=0
else
echo "Invalid value for shutdown type: acceptable values are \"-h\" for halt, or \"-r\" for restart."
exit 2
fi
# 2nd argument gives custom warning time
if [[ -z $2 ]]; then
# default warning time is 10 seconds
time=10
elif [[ $1 -ge 0 && $1 -le 60 ]]; then
time=$1
else
echo "Invalid value for time-to-shutdown: only values between 0 and 60 seconds are accepted."
exit 2
fi
# Check if server is active
status=$(systemctl show mcbe -p ActiveState --value)
if [[ $status != active ]]; then
echo "Error: Server is already stopped!"
exit 1
fi
say "Server shutting down in $time seconds!"
count=$(($time-1))
sleep 1
while [[ $count -gt 0 ]]; do
# print warning every 10 seconds
if [[ $(( $count % 10 )) -eq 0 ]]; then
say "Server shutting down in ${count} seconds!"
fi
# print warning every second for last 5 seconds
if [[ $count -le 5 ]]; then
say "Shutting down in ${count}..."
fi
count=$((count-1))
sleep 1
done
systemctl stop mcbe
if [[ $restart ]]; then
echo "Starting server..."
sleep 1
systemctl start mcbe
sleep 3
fi
echo "Done!"