36 lines
612 B
Bash
Executable file
36 lines
612 B
Bash
Executable file
#!/bin/bash -x
|
||
|
||
# 1: Temps en minutes
|
||
# 2: Type d’extinction
|
||
|
||
touch /dev/shm/mccount
|
||
|
||
while true
|
||
do
|
||
|
||
mcpid=$(systemctl show minecraft-server.service --property MainPID --value)
|
||
mcstatus=$(ps -q "${mcpid}" -o state --no-headers 2>/dev/null)
|
||
|
||
if [[ "$mcstatus" == "T" ]]
|
||
then
|
||
echo . >> /dev/shm/mccount
|
||
else
|
||
players_tmp=($(mcstatus localhost query | grep players))
|
||
players="${players_tmp[1]%%/*}"
|
||
if [[ "$players" -gt 0 ]]
|
||
then
|
||
> /dev/shm/mccount
|
||
fi
|
||
fi
|
||
|
||
time=$(wc -l /dev/shm/mccount | cut -d" " -f1)
|
||
|
||
if [[ "$time" -ge "${1:-5}" ]]
|
||
then
|
||
> /dev/shm/mccount
|
||
systemctl "${2:-suspend}"
|
||
fi
|
||
|
||
sleep 60
|
||
|
||
done
|