2d3fda9
From f1e9f613d9eea3105e906c114266d283ac898d44 Mon Sep 17 00:00:00 2001
2d3fda9
From: Harald Hoyer <harald@redhat.com>
2d3fda9
Date: Fri, 6 Jul 2012 12:28:17 +0200
2d3fda9
Subject: [PATCH] systemd: exit with sane state
2d3fda9
2d3fda9
---
2d3fda9
 modules.d/98systemd/dracut-cmdline.sh     |    6 ++++--
2d3fda9
 modules.d/98systemd/dracut-initqueue.sh   |    6 ++++--
2d3fda9
 modules.d/98systemd/dracut-pre-pivot.sh   |    6 ++++--
2d3fda9
 modules.d/98systemd/dracut-pre-trigger.sh |    6 ++++--
2d3fda9
 modules.d/98systemd/dracut-pre-udev.sh    |    6 ++++--
2d3fda9
 5 files changed, 20 insertions(+), 10 deletions(-)
2d3fda9
2d3fda9
diff --git a/modules.d/98systemd/dracut-cmdline.sh b/modules.d/98systemd/dracut-cmdline.sh
2d3fda9
index e1a75ea..6a44815 100755
2d3fda9
--- a/modules.d/98systemd/dracut-cmdline.sh
2d3fda9
+++ b/modules.d/98systemd/dracut-cmdline.sh
2d3fda9
@@ -8,9 +8,10 @@ NEWROOT="/sysroot"
2d3fda9
 [ -d /run/lock ] || mkdir -p -m 0755 /run/lock
2d3fda9
 
2d3fda9
 if [ -f /dracut-state.sh ]; then
2d3fda9
-    . /dracut-state.sh || :
2d3fda9
+    . /dracut-state.sh 2>/dev/null
2d3fda9
 fi
2d3fda9
-. /lib/dracut-lib.sh
2d3fda9
+type getarg >/dev/null 2>&1 || . /lib/dracut-lib.sh
2d3fda9
+
2d3fda9
 source_conf /etc/conf.d
2d3fda9
 
2d3fda9
 # run scriptlets to parse the command line
2d3fda9
@@ -23,3 +24,4 @@ source_hook cmdline
2d3fda9
 export root rflags fstype netroot NEWROOT
2d3fda9
 
2d3fda9
 export -p > /dracut-state.sh
2d3fda9
+exit 0
2d3fda9
diff --git a/modules.d/98systemd/dracut-initqueue.sh b/modules.d/98systemd/dracut-initqueue.sh
2d3fda9
index 03f1c9b..bc63582 100755
2d3fda9
--- a/modules.d/98systemd/dracut-initqueue.sh
2d3fda9
+++ b/modules.d/98systemd/dracut-initqueue.sh
2d3fda9
@@ -3,9 +3,10 @@
2d3fda9
 # ex: ts=8 sw=4 sts=4 et filetype=sh
2d3fda9
 
2d3fda9
 if [ -f /dracut-state.sh ]; then
2d3fda9
-    . /dracut-state.sh || :
2d3fda9
+    . /dracut-state.sh 2>/dev/null
2d3fda9
 fi
2d3fda9
-. /lib/dracut-lib.sh
2d3fda9
+type getarg >/dev/null 2>&1 || . /lib/dracut-lib.sh
2d3fda9
+
2d3fda9
 source_conf /etc/conf.d
2d3fda9
 
2d3fda9
 getarg 'rd.break=initqueue' 'rdbreak=initqueue' && emergency_shell -n initqueue "Break before initqueue"
2d3fda9
@@ -106,3 +107,4 @@ done
2d3fda9
 export -p > /dracut-state.sh
2d3fda9
 
2d3fda9
 systemctl isolate initrd-switch-root.target
2d3fda9
+exit 0
2d3fda9
diff --git a/modules.d/98systemd/dracut-pre-pivot.sh b/modules.d/98systemd/dracut-pre-pivot.sh
2d3fda9
index 89d7e6d..29a8248 100755
2d3fda9
--- a/modules.d/98systemd/dracut-pre-pivot.sh
2d3fda9
+++ b/modules.d/98systemd/dracut-pre-pivot.sh
2d3fda9
@@ -3,9 +3,10 @@
2d3fda9
 # ex: ts=8 sw=4 sts=4 et filetype=sh
2d3fda9
 
2d3fda9
 if [ -f /dracut-state.sh ]; then
2d3fda9
-    . /dracut-state.sh || :
2d3fda9
+    . /dracut-state.sh 2>/dev/null
2d3fda9
 fi
2d3fda9
-. /lib/dracut-lib.sh
2d3fda9
+type getarg >/dev/null 2>&1 || . /lib/dracut-lib.sh
2d3fda9
+
2d3fda9
 source_conf /etc/conf.d
2d3fda9
 
2d3fda9
 # pre pivot scripts are sourced just before we doing cleanup and switch over
2d3fda9
@@ -49,3 +50,4 @@ getarg rd.break rdbreak && emergency_shell -n switch_root "Break before switch_r
2d3fda9
 cp -avr /lib/systemd/system/dracut*.service /run/systemd/system/
2d3fda9
 
2d3fda9
 export -p > /dracut-state.sh
2d3fda9
+exit 0
2d3fda9
diff --git a/modules.d/98systemd/dracut-pre-trigger.sh b/modules.d/98systemd/dracut-pre-trigger.sh
2d3fda9
index 9521eaa..52ecfaf 100755
2d3fda9
--- a/modules.d/98systemd/dracut-pre-trigger.sh
2d3fda9
+++ b/modules.d/98systemd/dracut-pre-trigger.sh
2d3fda9
@@ -3,9 +3,10 @@
2d3fda9
 # ex: ts=8 sw=4 sts=4 et filetype=sh
2d3fda9
 
2d3fda9
 if [ -f /dracut-state.sh ]; then
2d3fda9
-    . /dracut-state.sh || :
2d3fda9
+    . /dracut-state.sh 2>/dev/null
2d3fda9
 fi
2d3fda9
-. /lib/dracut-lib.sh
2d3fda9
+type getarg >/dev/null 2>&1 || . /lib/dracut-lib.sh
2d3fda9
+
2d3fda9
 source_conf /etc/conf.d
2d3fda9
 
2d3fda9
 getargbool 0 rd.udev.info -y rdudevinfo && udevadm control --log-priority=info
2d3fda9
@@ -17,3 +18,4 @@ source_hook pre-trigger
2d3fda9
 udevadm control --reload >/dev/null 2>&1 || :
2d3fda9
 
2d3fda9
 export -p > /dracut-state.sh
2d3fda9
+exit 0
2d3fda9
diff --git a/modules.d/98systemd/dracut-pre-udev.sh b/modules.d/98systemd/dracut-pre-udev.sh
2d3fda9
index 3b5ac37..2566ab9 100755
2d3fda9
--- a/modules.d/98systemd/dracut-pre-udev.sh
2d3fda9
+++ b/modules.d/98systemd/dracut-pre-udev.sh
2d3fda9
@@ -3,9 +3,10 @@
2d3fda9
 # ex: ts=8 sw=4 sts=4 et filetype=sh
2d3fda9
 
2d3fda9
 if [ -f /dracut-state.sh ]; then
2d3fda9
-    . /dracut-state.sh || :
2d3fda9
+    . /dracut-state.sh 2>/dev/null
2d3fda9
 fi
2d3fda9
-. /lib/dracut-lib.sh
2d3fda9
+type getarg >/dev/null 2>&1 || . /lib/dracut-lib.sh
2d3fda9
+
2d3fda9
 source_conf /etc/conf.d
2d3fda9
 
2d3fda9
 # pre pivot scripts are sourced just before we doing cleanup and switch over
2d3fda9
@@ -14,3 +15,4 @@ getarg 'rd.break=pre-udev' 'rdbreak=pre-udev' && emergency_shell -n pre-udev "Br
2d3fda9
 source_hook pre-udev
2d3fda9
 
2d3fda9
 export -p > /dracut-state.sh
2d3fda9
+exit 0