2023-02-08 10:19:18 -05:00
|
|
|
#!/bin/sh
|
|
|
|
|
2024-04-15 08:54:08 -04:00
|
|
|
. /etc/container_environment.sh
|
|
|
|
. /etc/overleaf/env.sh
|
|
|
|
|
2023-02-10 12:33:13 -05:00
|
|
|
SITE_MAINTENANCE_FILE_BAK="$SITE_MAINTENANCE_FILE.bak.shutdown"
|
2023-02-08 10:19:18 -05:00
|
|
|
|
|
|
|
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
|
2024-06-25 07:03:05 -04:00
|
|
|
cd /overleaf/services/web && node scripts/disconnect_all_users.js --delay-in-seconds=5 >> /var/log/overleaf/web.log 2>&1
|
2023-02-08 10:19:18 -05:00
|
|
|
|
|
|
|
EXIT_CODE="$?"
|
|
|
|
if [ $EXIT_CODE -ne 0 ]
|
|
|
|
then
|
|
|
|
echo "scripts/disconnect_all_users.js failed with exit code $EXIT_CODE"
|
2024-06-17 04:10:04 -04:00
|
|
|
exit 1
|
2023-02-08 10:19:18 -05:00
|
|
|
fi
|
|
|
|
|
2024-06-25 07:03:05 -04:00
|
|
|
sleep 10 &
|
|
|
|
GIVE_EDITOR_10_SECONDS_TO_RELOAD=$!
|
|
|
|
|
2023-02-08 10:19:18 -05:00
|
|
|
# wait for disconnection
|
2024-06-17 04:10:04 -04:00
|
|
|
while ! sv stop real-time-overleaf; do
|
|
|
|
sleep 1
|
|
|
|
done
|
2023-02-08 10:19:18 -05:00
|
|
|
|
2024-06-25 07:03:05 -04:00
|
|
|
wait $GIVE_EDITOR_10_SECONDS_TO_RELOAD
|
|
|
|
|
2023-02-08 10:19:18 -05:00
|
|
|
exit 0
|