diff --git a/playbooks/tasks/include/upgrade-server.yml b/playbooks/tasks/include/upgrade-server.yml
index cae39fe1f7dfdd0e6f48f0fda439edc229357429..d3b2135d527f93ef1c9ff00c44aa0f5966a46053 100644
--- a/playbooks/tasks/include/upgrade-server.yml
+++ b/playbooks/tasks/include/upgrade-server.yml
@@ -24,10 +24,20 @@
       when: pgrep_systemd_nspawn is succeeded
   when: "'buildservers' in group_names"
 
-- name: wait for svntogit to finish
-  wait_for:
-    path: /srv/svntogit/update-repos.sh.lock
-    state: absent
+- name: gemini pre-reboot checks
+  block:
+    - name: wait for svntogit to finish
+      wait_for:
+        path: /srv/svntogit/update-repos.sh.lock
+        state: absent
+
+    - name: list logged on users
+      command: who
+      register: who
+
+    - name: abort reboot with logged on users
+      meta: end_host
+      when: who.stdout_lines|length > 1
   when: inventory_hostname == "gemini.archlinux.org"
 
 - name: reboot