core: set start job timeout from the kernel commandline (#3112)
authortblume <Thomas.Blume@suse.com>
Tue, 26 Apr 2016 15:10:36 +0000 (17:10 +0200)
committerLennart Poettering <lennart@poettering.net>
Tue, 26 Apr 2016 15:10:36 +0000 (17:10 +0200)
Add the boot parameter: systemd.default_timeout_start_sec to allow modification
of the default start job timeout at boot time.

man/kernel-command-line.xml
src/core/main.c

index 42d5e00..9c04849 100644 (file)
       </varlistentry>
 
       <varlistentry>
+        <term><varname>systemd.default_timeout_start_sec=</varname></term>
+
+        <listitem>
+          <para>Overwrites the default start job timeout <varname>DefaultTimeoutStartSec=</varname> at boot. For details,
+          see <citerefentry><refentrytitle>systemd-system.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>.</para>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
         <term><varname>modules-load=</varname></term>
         <term><varname>rd.modules-load=</varname></term>
 
index 8dfb392..75c5ff8 100644 (file)
@@ -413,6 +413,15 @@ static int parse_proc_cmdline_item(const char *key, const char *value) {
                 target = runlevel_to_target(key);
                 if (target)
                         return free_and_strdup(&arg_default_unit, target);
+
+        } else if (streq(key, "systemd.default_timeout_start_sec") && value) {
+
+                r = parse_sec(value, &arg_default_timeout_start_usec);
+                if (r < 0)
+                        log_warning_errno(r, "Failed to parse default start timeout: %s, ignoring.", value);
+
+                if (arg_default_timeout_start_usec <= 0)
+                        arg_default_timeout_start_usec = USEC_INFINITY;
         }
 
         return 0;