dcavalca / rpms / systemd

Forked from rpms/systemd 3 months ago
Clone
Zbigniew Jędrzejewski-Szmek ebeb76
From 1262e824a4d638e347ae0d39c973f1f750962533 Mon Sep 17 00:00:00 2001
Zbigniew Jędrzejewski-Szmek 7a99d8
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
Zbigniew Jędrzejewski-Szmek 7a99d8
Date: Fri, 23 Jul 2021 15:35:23 +0200
Zbigniew Jędrzejewski-Szmek ebeb76
Subject: [PATCH] update-helper: also add "user-reexec" verb
Zbigniew Jędrzejewski-Szmek 7a99d8
Zbigniew Jędrzejewski-Szmek 7a99d8
This is not called from the systemd.triggers or systemd.macros files. Instead,
Zbigniew Jędrzejewski-Szmek 7a99d8
it would be called from the scriptlets in systemd rpm package itself, at the
Zbigniew Jędrzejewski-Szmek 7a99d8
place where we call systemctl daemon-reexec.
Zbigniew Jędrzejewski-Szmek 7a99d8
Zbigniew Jędrzejewski-Szmek 7a99d8
See https://github.com/systemd/systemd/pull/20289#issuecomment-885622200 .
Zbigniew Jędrzejewski-Szmek 7a99d8
---
Zbigniew Jędrzejewski-Szmek 7a99d8
 src/rpm/systemd-update-helper.in | 10 +++++++++-
Zbigniew Jędrzejewski-Szmek 7a99d8
 1 file changed, 9 insertions(+), 1 deletion(-)
Zbigniew Jędrzejewski-Szmek 7a99d8
Zbigniew Jędrzejewski-Szmek 7a99d8
diff --git a/src/rpm/systemd-update-helper.in b/src/rpm/systemd-update-helper.in
Zbigniew Jędrzejewski-Szmek 7a99d8
index f3466ab3c0..0c6675a9db 100755
Zbigniew Jędrzejewski-Szmek 7a99d8
--- a/src/rpm/systemd-update-helper.in
Zbigniew Jędrzejewski-Szmek 7a99d8
+++ b/src/rpm/systemd-update-helper.in
Zbigniew Jędrzejewski-Szmek 7a99d8
@@ -74,7 +74,7 @@ case "$command" in
Zbigniew Jędrzejewski-Szmek 7a99d8
         fi
Zbigniew Jędrzejewski-Szmek 7a99d8
         ;;
Zbigniew Jędrzejewski-Szmek 7a99d8
 
Zbigniew Jędrzejewski-Szmek 7a99d8
-    user-reload-restart|user-reload|user-restart)
Zbigniew Jędrzejewski-Szmek 7a99d8
+    user-reload-restart|user-reload|user-restart|user-reexec)
Zbigniew Jędrzejewski-Szmek 7a99d8
         if [ -n "$*" ]; then
Zbigniew Jędrzejewski-Szmek 7a99d8
             echo "Unexpected arguments for '$command': $*"
Zbigniew Jędrzejewski-Szmek 7a99d8
             exit 2
Zbigniew Jędrzejewski-Szmek 7a99d8
@@ -84,6 +84,14 @@ case "$command" in
Zbigniew Jędrzejewski-Szmek 7a99d8
 
Zbigniew Jędrzejewski-Szmek 7a99d8
         users=$(systemctl list-units 'user@*' --legend=no | sed -n -r 's/.*user@([0-9]+).service.*/\1/p')
Zbigniew Jędrzejewski-Szmek 7a99d8
 
Zbigniew Jędrzejewski-Szmek 7a99d8
+        if [[ "$command" =~ reexec ]]; then
Zbigniew Jędrzejewski-Szmek 7a99d8
+            for user in $users; do
Zbigniew Jędrzejewski-Szmek 7a99d8
+                SYSTEMD_BUS_TIMEOUT={{UPDATE_HELPER_USER_TIMEOUT}} \
Zbigniew Jędrzejewski-Szmek 7a99d8
+                        systemctl --user -M "$user@" daemon-reexec &
Zbigniew Jędrzejewski-Szmek 7a99d8
+            done
Zbigniew Jędrzejewski-Szmek 7a99d8
+            wait
Zbigniew Jędrzejewski-Szmek 7a99d8
+        fi
Zbigniew Jędrzejewski-Szmek 7a99d8
+
Zbigniew Jędrzejewski-Szmek 7a99d8
         if [[ "$command" =~ reload ]]; then
Zbigniew Jędrzejewski-Szmek 7a99d8
             for user in $users; do
Zbigniew Jędrzejewski-Szmek 7a99d8
                 SYSTEMD_BUS_TIMEOUT={{UPDATE_HELPER_USER_TIMEOUT}} \