buildpack/script/alivecheck.sh
2020-01-06 07:03:24 +02:00

24 lines
530 B
Bash
Executable file

#!/bin/sh
# The following script is a failsafe for killing the Minecraft server if it happens
# to be stuck
set -x
while true; do
sleep 420
logfile=$HOME/logs/latest.log
if [ -f "$logfile" ]; then
# If localhost:25565 doesn't respond to ping, or if the log file is older than
# 3 minutes, kill the server
if [ "$(( $(date +%s) - $(date -r $logfile +%s) ))" -gt 360 ]; then
if [ "$(tail -20 $logfile | grep -c 'ERROR]: Requested chunk')" -eq 1 ]; then
rm -rf $HOME/worlds/
fi
pkill -9 java
fi
fi
done