aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Christian Hesse <mail@eworm.de>2024-01-30 15:39:36 +0100
committerGravatar Christian Hesse <mail@eworm.de>2024-01-30 15:45:55 +0100
commitd342ca8e078a098af40362e15c2a1becb239137e (patch)
treef60f2c35dc659b447c435c1ccd45787b7c4c47c5
parent4bc8477d2eac29086ece72fd6e7899d840c25b2e (diff)
downloadpacman-offline-d342ca8e078a098af40362e15c2a1becb239137e.tar.gz
pacman-offline-d342ca8e078a098af40362e15c2a1becb239137e.tar.zst
force soft-reboot on regular reboot
-rwxr-xr-xbin/pacman-offline6
-rw-r--r--hook/99-pacman-offline.hook2
-rwxr-xr-xsystemd/pacman-offline3
3 files changed, 9 insertions, 2 deletions
diff --git a/bin/pacman-offline b/bin/pacman-offline
index 80f0759..cbf5ff5 100755
--- a/bin/pacman-offline
+++ b/bin/pacman-offline
@@ -83,6 +83,12 @@ pacman --config /run/pacman.conf --sync --noconfirm --sysupgrade --downloadonly
# enable system update
ln -sf /var/cache/pacman/pkg /system-update
+# force a soft-reboot on reboot
+if [ -e /usr/lib/systemd/system/systemd-soft-reboot.service ]; then
+ ln -sf ../../../usr/lib/systemd/system/systemd-soft-reboot.service /run/systemd/system/systemd-reboot.service
+ systemctl daemon-reload
+fi
+
# reboot if requested
if [ ${REBOOT} -eq 1 ]; then
if systemctl --dry-run soft-reboot 2>/dev/null; then
diff --git a/hook/99-pacman-offline.hook b/hook/99-pacman-offline.hook
index 242ca78..1228d5a 100644
--- a/hook/99-pacman-offline.hook
+++ b/hook/99-pacman-offline.hook
@@ -8,4 +8,4 @@ Target = *
[Action]
Description = Disabling scheduled pacman offline update...
When = PostTransaction
-Exec = /usr/bin/rm -fv /system-update
+Exec = /usr/bin/rm -fv /system-update /run/systemd/system/systemd-reboot.service
diff --git a/systemd/pacman-offline b/systemd/pacman-offline
index d26038a..9471bfc 100755
--- a/systemd/pacman-offline
+++ b/systemd/pacman-offline
@@ -19,8 +19,9 @@ function finish { rm -f /run/pacman.conf; }
trap finish EXIT
sed '/^Include *= *\/etc\/pacman\.d\/offline\.conf$/s|^|#|' < /etc/pacman.conf > /run/pacman.conf
-# remove triggering symlink
+# remove triggering symlink and (soft-)reboot override
rm -f /system-update
+rm -f /run/systemd/system/systemd-reboot.service
# install updates
if [ "$(pacman --sync --print --needed archlinux-keyring | wc -l)" -gt 0 ]; then