81 lines
3.5 KiB
Diff
81 lines
3.5 KiB
Diff
From a43f97c4e35d0d9c7e6e315e11c909e86936e1cc Mon Sep 17 00:00:00 2001
|
|
From: Harald Hoyer <harald@redhat.com>
|
|
Date: Tue, 17 Jul 2012 11:06:25 +0200
|
|
Subject: [PATCH] systemd/dracut-pre-pivot.service: force clean stop of udevd
|
|
and cleanup-db
|
|
|
|
---
|
|
modules.d/98systemd/dracut-pre-pivot.service | 2 +-
|
|
modules.d/98systemd/dracut-pre-pivot.sh | 3 +++
|
|
modules.d/98systemd/module-setup.sh | 4 ----
|
|
modules.d/98systemd/udevadm-cleanup-db.service | 20 --------------------
|
|
4 files changed, 4 insertions(+), 25 deletions(-)
|
|
delete mode 100644 modules.d/98systemd/udevadm-cleanup-db.service
|
|
|
|
diff --git a/modules.d/98systemd/dracut-pre-pivot.service b/modules.d/98systemd/dracut-pre-pivot.service
|
|
index 61257cf..317b476 100644
|
|
--- a/modules.d/98systemd/dracut-pre-pivot.service
|
|
+++ b/modules.d/98systemd/dracut-pre-pivot.service
|
|
@@ -16,7 +16,7 @@ ConditionPathExists=/etc/initrd-release
|
|
[Service]
|
|
Type=oneshot
|
|
ExecStart=-/bin/dracut-pre-pivot
|
|
-ExecStopPost=-/usr/bin/systemctl isolate initrd-switch-root.target
|
|
+ExecStopPost=-/usr/bin/systemctl --no-block isolate initrd-switch-root.target
|
|
StandardInput=null
|
|
StandardOutput=syslog
|
|
StandardError=syslog+console
|
|
diff --git a/modules.d/98systemd/dracut-pre-pivot.sh b/modules.d/98systemd/dracut-pre-pivot.sh
|
|
index 31dded5..44afe54 100755
|
|
--- a/modules.d/98systemd/dracut-pre-pivot.sh
|
|
+++ b/modules.d/98systemd/dracut-pre-pivot.sh
|
|
@@ -39,4 +39,7 @@ echo "NEWROOT=\"$NEWROOT\"" >> /run/initramfs/switch-root.conf
|
|
|
|
getarg rd.break rdbreak && emergency_shell -n switch_root "Break before switch_root"
|
|
|
|
+/usr/bin/udevadm control --exit || warn "/usr/bin/udevadm control --exit failed"
|
|
+/usr/bin/udevadm info --cleanup-db || warn "/usr/bin/udevadm info --cleanup-db failed"
|
|
+
|
|
exit 0
|
|
diff --git a/modules.d/98systemd/module-setup.sh b/modules.d/98systemd/module-setup.sh
|
|
index 5cb236c..05faf87 100755
|
|
--- a/modules.d/98systemd/module-setup.sh
|
|
+++ b/modules.d/98systemd/module-setup.sh
|
|
@@ -143,10 +143,6 @@ install() {
|
|
inst_simple "$moddir/dracut-pre-pivot.service" ${dracutsystemunitdir}/dracut-pre-pivot.service
|
|
ln -fs ../dracut-pre-pivot.service "${initdir}${dracutsystemunitdir}/basic.target.wants/dracut-pre-pivot.service"
|
|
|
|
- inst_simple "$moddir/udevadm-cleanup-db.service" ${dracutsystemunitdir}/udevadm-cleanup-db.service
|
|
- mkdir -p "${initdir}${dracutsystemunitdir}/initrd-switch-root.target.requires"
|
|
- ln -fs ../udevadm-cleanup-db.service "${initdir}${dracutsystemunitdir}/initrd-switch-root.target.requires/udevadm-cleanup-db.service"
|
|
-
|
|
inst_script "$moddir/service-to-run.sh" "${systemdutildir}/system-generators/service-to-run"
|
|
}
|
|
|
|
diff --git a/modules.d/98systemd/udevadm-cleanup-db.service b/modules.d/98systemd/udevadm-cleanup-db.service
|
|
deleted file mode 100644
|
|
index 368a0dd..0000000
|
|
--- a/modules.d/98systemd/udevadm-cleanup-db.service
|
|
+++ /dev/null
|
|
@@ -1,20 +0,0 @@
|
|
-# This file is part of systemd.
|
|
-#
|
|
-# systemd is free software; you can redistribute it and/or modify it
|
|
-# under the terms of the GNU Lesser General Public License as published by
|
|
-# the Free Software Foundation; either version 2.1 of the License, or
|
|
-# (at your option) any later version.
|
|
-
|
|
-[Unit]
|
|
-Description=Cleanup udevd DB
|
|
-DefaultDependencies=no
|
|
-ConditionPathExists=/etc/initrd-release
|
|
-Conflicts=systemd-udevd.service systemd-udevd-control.socket systemd-udevd-kernel.socket
|
|
-Before=initrd-switch-root.service
|
|
-
|
|
-[Service]
|
|
-Type=oneshot
|
|
-ExecStart=-/usr/bin/udevadm info --cleanup-db
|
|
-StandardInput=null
|
|
-StandardOutput=null
|
|
-StandardError=null
|