diff --git a/Dockerfile.ubuntu-2004 b/Dockerfile.ubuntu-2004 index 8f7762c..7ac13aa 100644 --- a/Dockerfile.ubuntu-2004 +++ b/Dockerfile.ubuntu-2004 @@ -29,6 +29,7 @@ ENV UPDATE_CHECK=60 ENV USER=linuxgsm ENV UID=1000 ENV GID=1000 +ENV LGSM_SAVE_CRONTAB=false SHELL ["/bin/bash", "-o", "pipefail", "-c"] diff --git a/Dockerfile.ubuntu-2204 b/Dockerfile.ubuntu-2204 index 2295769..9dc1a36 100644 --- a/Dockerfile.ubuntu-2204 +++ b/Dockerfile.ubuntu-2204 @@ -29,6 +29,7 @@ ENV UPDATE_CHECK=60 ENV USER=linuxgsm ENV UID=1000 ENV GID=1000 +ENV LGSM_SAVE_CRONTAB=false SHELL ["/bin/bash", "-o", "pipefail", "-c"] diff --git a/Dockerfile.ubuntu-2404 b/Dockerfile.ubuntu-2404 index 2680805..a7670c2 100644 --- a/Dockerfile.ubuntu-2404 +++ b/Dockerfile.ubuntu-2404 @@ -29,6 +29,7 @@ ENV UPDATE_CHECK=60 ENV USER=linuxgsm ENV UID=1000 ENV GID=1000 +ENV LGSM_SAVE_CRONTAB=false SHELL ["/bin/bash", "-o", "pipefail", "-c"] diff --git a/entrypoint-user.sh b/entrypoint-user.sh index db72891..2b7efe2 100755 --- a/entrypoint-user.sh +++ b/entrypoint-user.sh @@ -91,7 +91,12 @@ else ./"${GAMESERVER}" sponsor fi -if [ -n "${UPDATE_CHECK}" ] && [ "${UPDATE_CHECK}" != "0" ]; then +if ( "${LGSM_SAVE_CRONTAB}" ) && [ -e "${LGSM_CRONTAB_SAVEPOINT}" ] ; then + echo -e "" + echo -e "Found saved crontab, restoring" + echo -e "=================================" + cat "${LGSM_CRONTAB_SAVEPOINT}" | crontab - || echo -e "Crontab is invalid, NOT restored!" +elif [ -n "${UPDATE_CHECK}" ] && [ "${UPDATE_CHECK}" != "0" ]; then echo -e "" echo -e "Starting Update Checks" echo -e "=================================" diff --git a/entrypoint.sh b/entrypoint.sh index 96eb0de..9b777ea 100755 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -2,6 +2,10 @@ exit_handler() { # Execute the shutdown commands + if ( ${LGSM_SAVE_CRONTAB} ) ; then + echo -e "Saving user ${USER} crontab" + crontab -u "${USER}" -l > "${LGSM_CRONTAB_SAVEPOINT}" + fi echo -e "Stopping ${GAMESERVER}" exec gosu "${USER}" ./"${GAMESERVER}" stop exitcode=$? @@ -62,6 +66,7 @@ chown -R "${USER}":"${USER}" /data echo -e "updating permissions for /app" chown -R "${USER}":"${USER}" /app export HOME=/data +export LGSM_CRONTAB_SAVEPOINT="${HOME}"/saved-crontab echo -e "" echo -e "Switch to user ${USER}"