mirror of
https://github.com/itzg/docker-minecraft-server.git
synced 2026-09-22 05:38:31 +00:00
Fixing AUTOPAUSE on Raspberry Pi 4s (#708)
* Replacing killall with pkill and ps -a to ps -ax * Adding net-tools and removing -q from pkill * Missed the resume.sh * Christ there's a lot of ps calls * Adding -x to health.sh, replacing killall with pkill in sudoers-mv, and replacing su-exec with gosu in knockd-config.cfg Co-authored-by: sean.sullivan.ctr@progeny.net <sean.sullivan.ctr@progeny.net>
This commit is contained in:
co-authored by
sean.sullivan.ctr@progeny.net
parent
51e6d5dfbd
commit
ffb50cfe28
@@ -9,6 +9,7 @@ RUN apt-get update \
|
|||||||
imagemagick \
|
imagemagick \
|
||||||
gosu \
|
gosu \
|
||||||
sudo \
|
sudo \
|
||||||
|
net-tools \
|
||||||
curl wget \
|
curl wget \
|
||||||
jq \
|
jq \
|
||||||
dos2unix \
|
dos2unix \
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ sudo /usr/sbin/knockd -c /tmp/knockd-config.cfg -d
|
|||||||
if [ $? -ne 0 ] ; then
|
if [ $? -ne 0 ] ; then
|
||||||
while :
|
while :
|
||||||
do
|
do
|
||||||
if [[ -n $(ps -o comm | grep java) ]] ; then
|
if [[ -n $(ps -ax -o comm | grep java) ]] ; then
|
||||||
break
|
break
|
||||||
fi
|
fi
|
||||||
sleep 0.1
|
sleep 0.1
|
||||||
@@ -17,7 +17,7 @@ if [ $? -ne 0 ] ; then
|
|||||||
logAutopause "Possible cause: docker's host network mode."
|
logAutopause "Possible cause: docker's host network mode."
|
||||||
logAutopause "Recreate without host mode or disable autopause functionality."
|
logAutopause "Recreate without host mode or disable autopause functionality."
|
||||||
logAutopause "Stopping server."
|
logAutopause "Stopping server."
|
||||||
killall -SIGTERM java
|
pkill -SIGTERM java
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
@@ -5,11 +5,11 @@ current_uptime() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
java_running() {
|
java_running() {
|
||||||
[[ $( ps -a -o stat,comm | grep 'java' | awk '{ print $1 }') =~ ^S.*$ ]]
|
[[ $( ps -ax -o stat,comm | grep 'java' | awk '{ print $1 }') =~ ^S.*$ ]]
|
||||||
}
|
}
|
||||||
|
|
||||||
rcon_client_exists() {
|
rcon_client_exists() {
|
||||||
[[ -n "$(ps -a -o comm | grep 'rcon-cli')" ]]
|
[[ -n "$(ps -ax -o comm | grep 'rcon-cli')" ]]
|
||||||
}
|
}
|
||||||
|
|
||||||
mc_server_listening() {
|
mc_server_listening() {
|
||||||
|
|||||||
@@ -3,10 +3,10 @@
|
|||||||
[unpauseMCServer-server]
|
[unpauseMCServer-server]
|
||||||
sequence = 25565
|
sequence = 25565
|
||||||
seq_timeout = 1
|
seq_timeout = 1
|
||||||
command = /sbin/su-exec minecraft:minecraft /autopause/resume.sh
|
command = /usr/sbin/gosu minecraft:minecraft /autopause/resume.sh
|
||||||
tcpflags = syn
|
tcpflags = syn
|
||||||
[unpauseMCServer-rcon]
|
[unpauseMCServer-rcon]
|
||||||
sequence = 25575
|
sequence = 25575
|
||||||
seq_timeout = 1
|
seq_timeout = 1
|
||||||
command = /sbin/su-exec minecraft:minecraft /autopause/resume.sh
|
command = /usr/sbin/gosu minecraft:minecraft /autopause/resume.sh
|
||||||
tcpflags = syn
|
tcpflags = syn
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
. /start-utils
|
. /start-utils
|
||||||
|
|
||||||
if [[ $( ps -a -o stat,comm | grep 'java' | awk '{ print $1 }') =~ ^S.*$ ]] ; then
|
if [[ $( ps -ax -o stat,comm | grep 'java' | awk '{ print $1 }') =~ ^S.*$ ]] ; then
|
||||||
# save world
|
# save world
|
||||||
rcon-cli save-all >/dev/null
|
rcon-cli save-all >/dev/null
|
||||||
|
|
||||||
@@ -17,5 +17,5 @@ if [[ $( ps -a -o stat,comm | grep 'java' | awk '{ print $1 }') =~ ^S.*$ ]] ; th
|
|||||||
|
|
||||||
# finally pause the process
|
# finally pause the process
|
||||||
logAutopauseAction "Pausing Java process"
|
logAutopauseAction "Pausing Java process"
|
||||||
killall -q -STOP java
|
pkill -STOP java
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
. /start-utils
|
. /start-utils
|
||||||
|
|
||||||
if [[ $( ps -a -o stat,comm | grep 'java' | awk '{ print $1 }') =~ ^T.*$ ]] ; then
|
if [[ $( ps -ax -o stat,comm | grep 'java' | awk '{ print $1 }') =~ ^T.*$ ]] ; then
|
||||||
logAutopauseAction "Knocked, resuming Java process"
|
logAutopauseAction "Knocked, resuming Java process"
|
||||||
killall -q -CONT java
|
pkill -CONT java
|
||||||
fi
|
fi
|
||||||
|
|||||||
+1
-1
@@ -1,2 +1,2 @@
|
|||||||
%minecraft ALL=(ALL) NOPASSWD:/usr/bin/killall
|
%minecraft ALL=(ALL) NOPASSWD:/usr/bin/pkill
|
||||||
%minecraft ALL=(ALL) NOPASSWD:/usr/sbin/knockd
|
%minecraft ALL=(ALL) NOPASSWD:/usr/sbin/knockd
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
if isTrue "${DISABLE_HEALTHCHECK}"; then
|
if isTrue "${DISABLE_HEALTHCHECK}"; then
|
||||||
echo "Healthcheck disabled"
|
echo "Healthcheck disabled"
|
||||||
exit 0
|
exit 0
|
||||||
elif isTrue "${ENABLE_AUTOPAUSE}" && [[ "$( ps -a -o stat,comm | grep 'java' | awk '{ print $1 }')" =~ ^T.*$ ]]; then
|
elif isTrue "${ENABLE_AUTOPAUSE}" && [[ "$( ps -ax -o stat,comm | grep 'java' | awk '{ print $1 }')" =~ ^T.*$ ]]; then
|
||||||
echo "Java process suspended by Autopause function"
|
echo "Java process suspended by Autopause function"
|
||||||
exit 0
|
exit 0
|
||||||
else
|
else
|
||||||
|
|||||||
Reference in New Issue
Block a user