mirror of
https://github.com/overleaf/overleaf.git
synced 2024-11-28 22:23:17 -05:00
ce9b531892
[server-ce] add test for graceful shutdown GitOrigin-RevId: 5e72e0073169009d2e3ece5a79cbd62051f6ad5b
34 lines
811 B
Bash
Executable file
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
|