Browse Source

qubes.WaitForSession: refactor by waiting for qrexec-fork-server socket

Frédéric Pierret (fepitre) 4 years ago
parent
commit
a44e73900e
1 changed files with 5 additions and 13 deletions
  1. 5 13
      qubes-rpc/qubes.WaitForSession

+ 5 - 13
qubes-rpc/qubes.WaitForSession

@@ -1,16 +1,8 @@
 #!/bin/sh
 
-# old API - get the user from caller
-#read -r IGNORE_USERNAME
+USERNAME="$(qubesdb-read /default-user || echo 'user')"
 
-# use default user provided in QubesDB, or hardcoded 'user' - this must be the
-# same as the X session owner
-USERNAME=$(qubesdb-read /default-user || echo 'user')
-cmd='echo $$ >> /tmp/qubes-session-waiter; [ ! -f /tmp/qubes-session-env ] && exec sleep inf'
-if [ "$(id -un)" = "$USERNAME" ]; then
-    sh -c "$cmd" 2>/dev/null
-else
-    su -s /bin/sh -c "$cmd" - "$USERNAME" 2> /dev/null
-fi
-# the above line is _expected_ to be terminated by a signal, don't treat this as a failure
-exit 0
+while ! [ -e "/var/run/qubes/qrexec-server.$USERNAME.sock" ]
+do
+    sleep 0.1
+done