]> git.ipfire.org Git - thirdparty/dracut.git/commitdiff
base/init: set RDTIMESTAMP
authorHarald Hoyer <harald@redhat.com>
Tue, 14 Sep 2010 08:48:06 +0000 (10:48 +0200)
committerHarald Hoyer <harald@redhat.com>
Mon, 20 Sep 2010 12:58:25 +0000 (14:58 +0200)
set $RDTIMESTAMP for init, if rd.timestamp is specified on the
kernel command line, so that systemd can print out:

"systemd: Boot finished after 15s = 3s (kernel) + 2s (initrd) + 10s
(userspace)"

dracut.kernel.7.xml
modules.d/99base/init

index 07fdce2cd380fc32a2609e8afaf2082b7f08dffb..0dc1ce8c429fe72bbaf5d2bf5bfc2efdf06dcaa0 100644 (file)
@@ -164,6 +164,14 @@ This parameter can be specified multiple times.</para>
             <para>set udev to loglevel debug</para>
           </listitem>
         </varlistentry>
+        <varlistentry>
+          <term>
+            <envar>rd.timestamp</envar>
+          </term>
+          <listitem>
+            <para>export RDTIMESTAMP environment variable to init, which is set to the uptime of the dracut start.</para>
+          </listitem>
+        </varlistentry>
       </variablelist>
     </refsect2>
     <refsect2>
index bff390d64085b5620a8508bafbe0767256b3e50f..010e329b23890f294b378abbd4e479a3e7498eb3 100755 (executable)
@@ -77,6 +77,9 @@ mknod -m 0666 /dev/null c 1 3
 mount -t proc /proc /proc >/dev/null 2>&1
 mount -t sysfs /sys /sys >/dev/null 2>&1
 
+read RDTIMESTAMP _tmp < /proc/uptime
+unset _tmp
+
 if [ ! -c /dev/ptmx ]; then
     # try to mount devtmpfs
     if ! mount -t devtmpfs -omode=0755 udev /dev >/dev/null 2>&1; then
@@ -305,6 +308,7 @@ else
                 ;;
         esac
     done
+    initargs="$initargs"
 fi
 
 # Debug: Copy state
@@ -313,6 +317,12 @@ if getarg rdcopystate; then
     cp /tmp/* /dev/.initramfs/ >/dev/null 2>&1
 fi
 
+if getarg rd.timestamp; then
+    export RDTIMESTAMP
+else
+    unset RDTIMESTAMP
+fi    
+
 info "Switching root"
 
 wait_for_loginit
@@ -320,7 +330,6 @@ wait_for_loginit
 umask $OLD_UMASK
 unset HOME
 unset TERM
-
 exec switch_root "$NEWROOT" "$INIT" $initargs || {
     echo "Something went very badly wrong in the initramfs.  Please "
     echo "file a bug against dracut."