overleaf/server-ce/init_preshutdown_scripts/00_close_site
Jakob Ackermann ce9b531892 Merge pull request #19098 from overleaf/jpa-graceful-shutdown-tests
[server-ce] add test for graceful shutdown

GitOrigin-RevId: 5e72e0073169009d2e3ece5a79cbd62051f6ad5b
2024-06-25 11:12:43 +00:00

34 lines
811 B
Bash
Executable file

#!/bin/sh
. /etc/container_environment.sh
. /etc/overleaf/env.sh
SITE_MAINTENANCE_FILE_BAK="$SITE_MAINTENANCE_FILE.bak.shutdown"
mv "${SITE_MAINTENANCE_FILE}" "${SITE_MAINTENANCE_FILE_BAK}"
echo "closed" > "${SITE_MAINTENANCE_FILE}"
# status file is polled every 5 seconds
sleep 5
# giving a grace period of 5 seconds for users before disconnecting them and start shutting down
cd /overleaf/services/web && node scripts/disconnect_all_users.js --delay-in-seconds=5 >> /var/log/overleaf/web.log 2>&1
EXIT_CODE="$?"
if [ $EXIT_CODE -ne 0 ]
then
echo "scripts/disconnect_all_users.js failed with exit code $EXIT_CODE"
exit 1
fi
sleep 10 &
GIVE_EDITOR_10_SECONDS_TO_RELOAD=$!
# wait for disconnection
while ! sv stop real-time-overleaf; do
sleep 1
done
wait $GIVE_EDITOR_10_SECONDS_TO_RELOAD
exit 0