diff --git a/playbooks/tasks/include/upgrade-server.yml b/playbooks/tasks/include/upgrade-server.yml
index 27626baffa05b6dbe1f2d3a756d4f22a2383fa43..a63adb3aaeb293184a93e4457375ca9b51c8796d 100644
--- a/playbooks/tasks/include/upgrade-server.yml
+++ b/playbooks/tasks/include/upgrade-server.yml
@@ -24,10 +24,22 @@
       when: pgrep 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 is changed
+        - who.stdout_lines|length > 1
   when: inventory_hostname == "gemini.archlinux.org"
 
 - name: reboot