Zbigniew Jędrzejewski-Szmek 930e1b
From f9d232e896bec3301a20a33a38a87b102f0172bc Mon Sep 17 00:00:00 2001
Zbigniew Jędrzejewski-Szmek 930e1b
From: Oleksii Shevchuk <alxchk@gmail.com>
Zbigniew Jędrzejewski-Szmek 930e1b
Date: Mon, 4 Nov 2013 18:47:43 +0200
Zbigniew Jędrzejewski-Szmek 930e1b
Subject: [PATCH] Configurable Timeouts/Restarts default values
Zbigniew Jędrzejewski-Szmek 930e1b
Zbigniew Jędrzejewski-Szmek 930e1b
https://bugs.freedesktop.org/show_bug.cgi?id=71132
Zbigniew Jędrzejewski-Szmek 930e1b
Zbigniew Jędrzejewski-Szmek 930e1b
Patch adds DefaultTimeoutStartSec, DefaultTimeoutStopSec, DefaultRestartSec
Zbigniew Jędrzejewski-Szmek 930e1b
configuration options to manager configuration file.
Zbigniew Jędrzejewski-Szmek 930e1b
---
Zbigniew Jędrzejewski-Szmek 930e1b
 man/systemd-system.conf.xml | 24 +++++++++++++++++++++++-
Zbigniew Jędrzejewski-Szmek 930e1b
 man/systemd.mount.xml       |  4 ++--
Zbigniew Jędrzejewski-Szmek 930e1b
 man/systemd.service.xml     |  6 ++++--
Zbigniew Jędrzejewski-Szmek 930e1b
 man/systemd.socket.xml      |  4 ++--
Zbigniew Jędrzejewski-Szmek 930e1b
 man/systemd.swap.xml        |  4 ++--
Zbigniew Jędrzejewski-Szmek 930e1b
 src/core/device.c           |  2 +-
Zbigniew Jędrzejewski-Szmek 930e1b
 src/core/main.c             |  9 +++++++++
Zbigniew Jędrzejewski-Szmek 930e1b
 src/core/manager.h          |  3 +++
Zbigniew Jędrzejewski-Szmek 930e1b
 src/core/mount.c            |  2 +-
Zbigniew Jędrzejewski-Szmek 930e1b
 src/core/scope.c            |  2 +-
Zbigniew Jędrzejewski-Szmek 930e1b
 src/core/service.c          |  6 +++---
Zbigniew Jędrzejewski-Szmek 930e1b
 src/core/socket.c           |  2 +-
Zbigniew Jędrzejewski-Szmek 930e1b
 src/core/swap.c             |  2 +-
Zbigniew Jędrzejewski-Szmek 930e1b
 src/core/system.conf        |  3 +++
Zbigniew Jędrzejewski-Szmek 930e1b
 src/core/user.conf          |  3 +++
Zbigniew Jędrzejewski-Szmek 930e1b
 15 files changed, 59 insertions(+), 17 deletions(-)
Zbigniew Jędrzejewski-Szmek 930e1b
Zbigniew Jędrzejewski-Szmek 930e1b
diff --git a/man/systemd-system.conf.xml b/man/systemd-system.conf.xml
Zbigniew Jędrzejewski-Szmek 930e1b
index e8cf8a9..c1f2648 100644
Zbigniew Jędrzejewski-Szmek 930e1b
--- a/man/systemd-system.conf.xml
Zbigniew Jędrzejewski-Szmek 930e1b
+++ b/man/systemd-system.conf.xml
Zbigniew Jędrzejewski-Szmek 930e1b
@@ -61,7 +61,6 @@
Zbigniew Jędrzejewski-Szmek 930e1b
                 otherwise <filename>user.conf</filename>. These
Zbigniew Jędrzejewski-Szmek 930e1b
                 configuration files contain a few settings controlling
Zbigniew Jędrzejewski-Szmek 930e1b
                 basic manager operations.</para>
Zbigniew Jędrzejewski-Szmek 930e1b
-
Zbigniew Jędrzejewski-Szmek 930e1b
         </refsect1>
Zbigniew Jędrzejewski-Szmek 930e1b
 
Zbigniew Jędrzejewski-Szmek 930e1b
         <refsect1>
Zbigniew Jędrzejewski-Szmek 930e1b
@@ -95,6 +94,29 @@
Zbigniew Jędrzejewski-Szmek 930e1b
                         </varlistentry>
Zbigniew Jędrzejewski-Szmek 930e1b
 
Zbigniew Jędrzejewski-Szmek 930e1b
                         <varlistentry>
Zbigniew Jędrzejewski-Szmek 930e1b
+                                <term><varname>DefaultTimeoutStartSec=</varname></term>
Zbigniew Jędrzejewski-Szmek 930e1b
+                                <term><varname>DefaultTimeoutStopSec=</varname></term>
Zbigniew Jędrzejewski-Szmek 930e1b
+                                <term><varname>DefaultRestartSec=</varname></term>
Zbigniew Jędrzejewski-Szmek 930e1b
+
Zbigniew Jędrzejewski-Szmek 930e1b
+                                <listitem><para>Configures the default
Zbigniew Jędrzejewski-Szmek 930e1b
+                                time-outs for starting and stopping of
Zbigniew Jędrzejewski-Szmek 930e1b
+                                units, as well as the default time to
Zbigniew Jędrzejewski-Szmek 930e1b
+                                sleep between automatic restarts of a
Zbigniew Jędrzejewski-Szmek 930e1b
+                                units, as configured per-unit in
Zbigniew Jędrzejewski-Szmek 930e1b
+                                <varname>TimeoutStartSec=</varname>,
Zbigniew Jędrzejewski-Szmek 930e1b
+                                <varname>TimeoutStopSec=</varname> and
Zbigniew Jędrzejewski-Szmek 930e1b
+                                <varname>RestartSec=</varname> (for
Zbigniew Jędrzejewski-Szmek 930e1b
+                                service units see
Zbigniew Jędrzejewski-Szmek 930e1b
+                                <citerefentry><refentrytitle>systemd.service</refentrytitle><manvolnum>5</manvolnum></citerefentry>
Zbigniew Jędrzejewski-Szmek 930e1b
+                                for details on the per-unit
Zbigniew Jędrzejewski-Szmek 930e1b
+                                settings). For non-service units
Zbigniew Jędrzejewski-Szmek 930e1b
+                                <varname>DefaultTimeoutStartSec=</varname>
Zbigniew Jędrzejewski-Szmek 930e1b
+                                sets the default
Zbigniew Jędrzejewski-Szmek 930e1b
+                                <varname>TimeoutSec=</varname> value.
Zbigniew Jędrzejewski-Szmek 930e1b
+                                </para></listitem>
Zbigniew Jędrzejewski-Szmek 930e1b
+                        </varlistentry>
Zbigniew Jędrzejewski-Szmek 930e1b
+
Zbigniew Jędrzejewski-Szmek 930e1b
+                        <varlistentry>
Zbigniew Jędrzejewski-Szmek 930e1b
                                 <term><varname>CPUAffinity=</varname></term>
Zbigniew Jędrzejewski-Szmek 930e1b
 
Zbigniew Jędrzejewski-Szmek 930e1b
                                 <listitem><para>Configures the initial
Zbigniew Jędrzejewski-Szmek 930e1b
diff --git a/man/systemd.mount.xml b/man/systemd.mount.xml
Zbigniew Jędrzejewski-Szmek 930e1b
index 48af1ca..71a5736 100644
Zbigniew Jędrzejewski-Szmek 930e1b
--- a/man/systemd.mount.xml
Zbigniew Jędrzejewski-Szmek 930e1b
+++ b/man/systemd.mount.xml
Zbigniew Jędrzejewski-Szmek 930e1b
@@ -260,8 +260,8 @@
Zbigniew Jędrzejewski-Szmek 930e1b
                                 Takes a unit-less value in seconds, or
Zbigniew Jędrzejewski-Szmek 930e1b
                                 a time span value such as "5min
Zbigniew Jędrzejewski-Szmek 930e1b
                                 20s". Pass 0 to disable the timeout
Zbigniew Jędrzejewski-Szmek 930e1b
-                                logic. Defaults to
Zbigniew Jędrzejewski-Szmek 930e1b
-                                90s.</para></listitem>
Zbigniew Jędrzejewski-Szmek 930e1b
+                                logic. Default value is setted up in manager configuration
Zbigniew Jędrzejewski-Szmek 930e1b
+                                file via <term><varname>DefaultTimeoutStart=</varname></term>.</para></listitem>
Zbigniew Jędrzejewski-Szmek 930e1b
                         </varlistentry>
Zbigniew Jędrzejewski-Szmek 930e1b
                 </variablelist>
Zbigniew Jędrzejewski-Szmek 930e1b
 
Zbigniew Jędrzejewski-Szmek 930e1b
diff --git a/man/systemd.service.xml b/man/systemd.service.xml
Zbigniew Jędrzejewski-Szmek 930e1b
index 5e1ddf7..df04048 100644
Zbigniew Jędrzejewski-Szmek 930e1b
--- a/man/systemd.service.xml
Zbigniew Jędrzejewski-Szmek 930e1b
+++ b/man/systemd.service.xml
Zbigniew Jędrzejewski-Szmek 930e1b
@@ -524,7 +524,8 @@
Zbigniew Jędrzejewski-Szmek 930e1b
                                 Takes a unit-less value in seconds, or a
Zbigniew Jędrzejewski-Szmek 930e1b
                                 time span value such as "5min
Zbigniew Jędrzejewski-Szmek 930e1b
                                 20s". Pass 0 to disable the timeout
Zbigniew Jędrzejewski-Szmek 930e1b
-                                logic. Defaults to 90s, except when
Zbigniew Jędrzejewski-Szmek 930e1b
+                                logic. Defaults to <varname>TimeoutStartSec=</varname> in
Zbigniew Jędrzejewski-Szmek 930e1b
+                                manager configuration file, except when
Zbigniew Jędrzejewski-Szmek 930e1b
                                 <varname>Type=oneshot</varname> is
Zbigniew Jędrzejewski-Szmek 930e1b
                                 used in which case the timeout
Zbigniew Jędrzejewski-Szmek 930e1b
                                 is disabled by default.
Zbigniew Jędrzejewski-Szmek 930e1b
@@ -545,7 +546,8 @@
Zbigniew Jędrzejewski-Szmek 930e1b
                                 Takes a unit-less value in seconds, or a
Zbigniew Jędrzejewski-Szmek 930e1b
                                 time span value such as "5min
Zbigniew Jędrzejewski-Szmek 930e1b
                                 20s". Pass 0 to disable the timeout
Zbigniew Jędrzejewski-Szmek 930e1b
-                                logic. Defaults to 90s.
Zbigniew Jędrzejewski-Szmek 930e1b
+                                logic. Defaults to <varname>TimeoutStartSec=</varname> in
Zbigniew Jędrzejewski-Szmek 930e1b
+                                manager configuration file.
Zbigniew Jędrzejewski-Szmek 930e1b
                                 </para></listitem>
Zbigniew Jędrzejewski-Szmek 930e1b
                         </varlistentry>
Zbigniew Jędrzejewski-Szmek 930e1b
 
Zbigniew Jędrzejewski-Szmek 930e1b
diff --git a/man/systemd.socket.xml b/man/systemd.socket.xml
Zbigniew Jędrzejewski-Szmek 930e1b
index 8c88d9f..1c78562 100644
Zbigniew Jędrzejewski-Szmek 930e1b
--- a/man/systemd.socket.xml
Zbigniew Jędrzejewski-Szmek 930e1b
+++ b/man/systemd.socket.xml
Zbigniew Jędrzejewski-Szmek 930e1b
@@ -679,8 +679,8 @@
Zbigniew Jędrzejewski-Szmek 930e1b
                                 Takes a unit-less value in seconds, or
Zbigniew Jędrzejewski-Szmek 930e1b
                                 a time span value such as "5min
Zbigniew Jędrzejewski-Szmek 930e1b
                                 20s". Pass 0 to disable the timeout
Zbigniew Jędrzejewski-Szmek 930e1b
-                                logic. Defaults to
Zbigniew Jędrzejewski-Szmek 930e1b
-                                90s.</para></listitem>
Zbigniew Jędrzejewski-Szmek 930e1b
+                                logic. Defaults to <varname>TimeoutStartSec=</varname> in
Zbigniew Jędrzejewski-Szmek 930e1b
+                                manager configuration file.</para></listitem>
Zbigniew Jędrzejewski-Szmek 930e1b
                         </varlistentry>
Zbigniew Jędrzejewski-Szmek 930e1b
 
Zbigniew Jędrzejewski-Szmek 930e1b
                         <varlistentry>
Zbigniew Jędrzejewski-Szmek 930e1b
diff --git a/man/systemd.swap.xml b/man/systemd.swap.xml
Zbigniew Jędrzejewski-Szmek 930e1b
index 813ae6c..13f6c84 100644
Zbigniew Jędrzejewski-Szmek 930e1b
--- a/man/systemd.swap.xml
Zbigniew Jędrzejewski-Szmek 930e1b
+++ b/man/systemd.swap.xml
Zbigniew Jędrzejewski-Szmek 930e1b
@@ -186,8 +186,8 @@
Zbigniew Jędrzejewski-Szmek 930e1b
                                 Takes a unit-less value in seconds, or
Zbigniew Jędrzejewski-Szmek 930e1b
                                 a time span value such as "5min
Zbigniew Jędrzejewski-Szmek 930e1b
                                 20s". Pass 0 to disable the timeout
Zbigniew Jędrzejewski-Szmek 930e1b
-                                logic. Defaults to
Zbigniew Jędrzejewski-Szmek 930e1b
-                                90s.</para></listitem>
Zbigniew Jędrzejewski-Szmek 930e1b
+                                logic. Defaults to <varname>TimeoutStartSec=</varname> in
Zbigniew Jędrzejewski-Szmek 930e1b
+                                manager configuration file.</para></listitem>
Zbigniew Jędrzejewski-Szmek 930e1b
                         </varlistentry>
Zbigniew Jędrzejewski-Szmek 930e1b
                 </variablelist>
Zbigniew Jędrzejewski-Szmek 930e1b
 
Zbigniew Jędrzejewski-Szmek 930e1b
diff --git a/src/core/device.c b/src/core/device.c
Zbigniew Jędrzejewski-Szmek 930e1b
index 9fca82a..5397bd6 100644
Zbigniew Jędrzejewski-Szmek 930e1b
--- a/src/core/device.c
Zbigniew Jędrzejewski-Szmek 930e1b
+++ b/src/core/device.c
Zbigniew Jędrzejewski-Szmek 930e1b
@@ -70,7 +70,7 @@ static void device_init(Unit *u) {
Zbigniew Jędrzejewski-Szmek 930e1b
          * indefinitely for plugged in devices, something which cannot
Zbigniew Jędrzejewski-Szmek 930e1b
          * happen for the other units since their operations time out
Zbigniew Jędrzejewski-Szmek 930e1b
          * anyway. */
Zbigniew Jędrzejewski-Szmek 930e1b
-        UNIT(d)->job_timeout = DEFAULT_TIMEOUT_USEC;
Zbigniew Jędrzejewski-Szmek 930e1b
+        UNIT(d)->job_timeout = u->manager->default_timeout_start_usec;
Zbigniew Jędrzejewski-Szmek 930e1b
 
Zbigniew Jędrzejewski-Szmek 930e1b
         UNIT(d)->ignore_on_isolate = true;
Zbigniew Jędrzejewski-Szmek 930e1b
         UNIT(d)->ignore_on_snapshot = true;
Zbigniew Jędrzejewski-Szmek 930e1b
diff --git a/src/core/main.c b/src/core/main.c
Zbigniew Jędrzejewski-Szmek 930e1b
index fe291f8..937994c 100644
Zbigniew Jędrzejewski-Szmek 930e1b
--- a/src/core/main.c
Zbigniew Jędrzejewski-Szmek 930e1b
+++ b/src/core/main.c
Zbigniew Jędrzejewski-Szmek 930e1b
@@ -90,6 +90,9 @@ static bool arg_switched_root = false;
Zbigniew Jędrzejewski-Szmek 930e1b
 static char ***arg_join_controllers = NULL;
Zbigniew Jędrzejewski-Szmek 930e1b
 static ExecOutput arg_default_std_output = EXEC_OUTPUT_JOURNAL;
Zbigniew Jędrzejewski-Szmek 930e1b
 static ExecOutput arg_default_std_error = EXEC_OUTPUT_INHERIT;
Zbigniew Jędrzejewski-Szmek 930e1b
+static usec_t arg_default_restart_usec = DEFAULT_RESTART_USEC;
Zbigniew Jędrzejewski-Szmek 930e1b
+static usec_t arg_default_timeout_start_usec = DEFAULT_TIMEOUT_USEC;
Zbigniew Jędrzejewski-Szmek 930e1b
+static usec_t arg_default_timeout_stop_usec = DEFAULT_TIMEOUT_USEC;
Zbigniew Jędrzejewski-Szmek 930e1b
 static usec_t arg_runtime_watchdog = 0;
Zbigniew Jędrzejewski-Szmek 930e1b
 static usec_t arg_shutdown_watchdog = 10 * USEC_PER_MINUTE;
Zbigniew Jędrzejewski-Szmek 930e1b
 static char **arg_default_environment = NULL;
Zbigniew Jędrzejewski-Szmek 930e1b
@@ -636,6 +639,9 @@ static int parse_config_file(void) {
Zbigniew Jędrzejewski-Szmek 930e1b
                 { "Manager", "CPUAffinity",           config_parse_cpu_affinity2, 0, NULL                    },
Zbigniew Jędrzejewski-Szmek 930e1b
                 { "Manager", "DefaultStandardOutput", config_parse_output,       0, &arg_default_std_output  },
Zbigniew Jędrzejewski-Szmek 930e1b
                 { "Manager", "DefaultStandardError",  config_parse_output,       0, &arg_default_std_error   },
Zbigniew Jędrzejewski-Szmek 930e1b
+                { "Manager", "DefaultTimeoutStartSec", config_parse_sec,         0, &arg_default_timeout_start_usec },
Zbigniew Jędrzejewski-Szmek 930e1b
+                { "Manager", "DefaultTimeoutStopSec", config_parse_sec,          0, &arg_default_timeout_stop_usec  },
Zbigniew Jędrzejewski-Szmek 930e1b
+                { "Manager", "DefaultRestartSec",     config_parse_sec,          0, &arg_default_restart_usec  },
Zbigniew Jędrzejewski-Szmek 930e1b
                 { "Manager", "JoinControllers",       config_parse_join_controllers, 0, &arg_join_controllers },
Zbigniew Jędrzejewski-Szmek 930e1b
                 { "Manager", "RuntimeWatchdogSec",    config_parse_sec,          0, &arg_runtime_watchdog    },
Zbigniew Jędrzejewski-Szmek 930e1b
                 { "Manager", "ShutdownWatchdogSec",   config_parse_sec,          0, &arg_shutdown_watchdog   },
Zbigniew Jędrzejewski-Szmek 930e1b
@@ -1542,6 +1548,9 @@ int main(int argc, char *argv[]) {
Zbigniew Jędrzejewski-Szmek 930e1b
         m->confirm_spawn = arg_confirm_spawn;
Zbigniew Jędrzejewski-Szmek 930e1b
         m->default_std_output = arg_default_std_output;
Zbigniew Jędrzejewski-Szmek 930e1b
         m->default_std_error = arg_default_std_error;
Zbigniew Jędrzejewski-Szmek 930e1b
+        m->default_restart_usec = arg_default_restart_usec;
Zbigniew Jędrzejewski-Szmek 930e1b
+        m->default_timeout_start_usec = arg_default_timeout_start_usec;
Zbigniew Jędrzejewski-Szmek 930e1b
+        m->default_timeout_stop_usec = arg_default_timeout_stop_usec;
Zbigniew Jędrzejewski-Szmek 930e1b
         m->runtime_watchdog = arg_runtime_watchdog;
Zbigniew Jędrzejewski-Szmek 930e1b
         m->shutdown_watchdog = arg_shutdown_watchdog;
Zbigniew Jędrzejewski-Szmek 930e1b
         m->userspace_timestamp = userspace_timestamp;
Zbigniew Jędrzejewski-Szmek 930e1b
diff --git a/src/core/manager.h b/src/core/manager.h
Zbigniew Jędrzejewski-Szmek 930e1b
index a3049b5..e74c609 100644
Zbigniew Jędrzejewski-Szmek 930e1b
--- a/src/core/manager.h
Zbigniew Jędrzejewski-Szmek 930e1b
+++ b/src/core/manager.h
Zbigniew Jędrzejewski-Szmek 930e1b
@@ -230,6 +230,9 @@ struct Manager {
Zbigniew Jędrzejewski-Szmek 930e1b
 
Zbigniew Jędrzejewski-Szmek 930e1b
         ExecOutput default_std_output, default_std_error;
Zbigniew Jędrzejewski-Szmek 930e1b
 
Zbigniew Jędrzejewski-Szmek 930e1b
+        usec_t default_restart_usec, default_timeout_start_usec,
Zbigniew Jędrzejewski-Szmek 930e1b
+                default_timeout_stop_usec;
Zbigniew Jędrzejewski-Szmek 930e1b
+
Zbigniew Jędrzejewski-Szmek 930e1b
         struct rlimit *rlimit[RLIMIT_NLIMITS];
Zbigniew Jędrzejewski-Szmek 930e1b
 
Zbigniew Jędrzejewski-Szmek 930e1b
         /* non-zero if we are reloading or reexecuting, */
Zbigniew Jędrzejewski-Szmek 930e1b
diff --git a/src/core/mount.c b/src/core/mount.c
Zbigniew Jędrzejewski-Szmek 930e1b
index 70cd372..c0445a6 100644
Zbigniew Jędrzejewski-Szmek 930e1b
--- a/src/core/mount.c
Zbigniew Jędrzejewski-Szmek 930e1b
+++ b/src/core/mount.c
Zbigniew Jędrzejewski-Szmek 930e1b
@@ -131,7 +131,7 @@ static void mount_init(Unit *u) {
Zbigniew Jędrzejewski-Szmek 930e1b
         assert(u);
Zbigniew Jędrzejewski-Szmek 930e1b
         assert(u->load_state == UNIT_STUB);
Zbigniew Jędrzejewski-Szmek 930e1b
 
Zbigniew Jędrzejewski-Szmek 930e1b
-        m->timeout_usec = DEFAULT_TIMEOUT_USEC;
Zbigniew Jędrzejewski-Szmek 930e1b
+        m->timeout_usec = u->manager->default_timeout_start_usec;
Zbigniew Jędrzejewski-Szmek 930e1b
         m->directory_mode = 0755;
Zbigniew Jędrzejewski-Szmek 930e1b
 
Zbigniew Jędrzejewski-Szmek 930e1b
         exec_context_init(&m->exec_context);
Zbigniew Jędrzejewski-Szmek 930e1b
diff --git a/src/core/scope.c b/src/core/scope.c
Zbigniew Jędrzejewski-Szmek 930e1b
index 50e5dba..41da3b9 100644
Zbigniew Jędrzejewski-Szmek 930e1b
--- a/src/core/scope.c
Zbigniew Jędrzejewski-Szmek 930e1b
+++ b/src/core/scope.c
Zbigniew Jędrzejewski-Szmek 930e1b
@@ -46,7 +46,7 @@ static void scope_init(Unit *u) {
Zbigniew Jędrzejewski-Szmek 930e1b
         assert(u);
Zbigniew Jędrzejewski-Szmek 930e1b
         assert(u->load_state == UNIT_STUB);
Zbigniew Jędrzejewski-Szmek 930e1b
 
Zbigniew Jędrzejewski-Szmek 930e1b
-        s->timeout_stop_usec = DEFAULT_TIMEOUT_USEC;
Zbigniew Jędrzejewski-Szmek 930e1b
+        s->timeout_stop_usec = u->manager->default_timeout_stop_usec;
Zbigniew Jędrzejewski-Szmek 930e1b
 
Zbigniew Jędrzejewski-Szmek 930e1b
         watch_init(&s->timer_watch);
Zbigniew Jędrzejewski-Szmek 930e1b
 
Zbigniew Jędrzejewski-Szmek 930e1b
diff --git a/src/core/service.c b/src/core/service.c
Zbigniew Jędrzejewski-Szmek 930e1b
index 96ed2d3..e81aa1f 100644
Zbigniew Jędrzejewski-Szmek 930e1b
--- a/src/core/service.c
Zbigniew Jędrzejewski-Szmek 930e1b
+++ b/src/core/service.c
Zbigniew Jędrzejewski-Szmek 930e1b
@@ -124,9 +124,9 @@ static void service_init(Unit *u) {
Zbigniew Jędrzejewski-Szmek 930e1b
         assert(u);
Zbigniew Jędrzejewski-Szmek 930e1b
         assert(u->load_state == UNIT_STUB);
Zbigniew Jędrzejewski-Szmek 930e1b
 
Zbigniew Jędrzejewski-Szmek 930e1b
-        s->timeout_start_usec = DEFAULT_TIMEOUT_USEC;
Zbigniew Jędrzejewski-Szmek 930e1b
-        s->timeout_stop_usec = DEFAULT_TIMEOUT_USEC;
Zbigniew Jędrzejewski-Szmek 930e1b
-        s->restart_usec = DEFAULT_RESTART_USEC;
Zbigniew Jędrzejewski-Szmek 930e1b
+        s->timeout_start_usec = u->manager->default_timeout_start_usec;
Zbigniew Jędrzejewski-Szmek 930e1b
+        s->timeout_stop_usec = u->manager->default_timeout_stop_usec;
Zbigniew Jędrzejewski-Szmek 930e1b
+        s->restart_usec = u->manager->default_restart_usec;
Zbigniew Jędrzejewski-Szmek 930e1b
         s->type = _SERVICE_TYPE_INVALID;
Zbigniew Jędrzejewski-Szmek 930e1b
 
Zbigniew Jędrzejewski-Szmek 930e1b
         watch_init(&s->watchdog_watch);
Zbigniew Jędrzejewski-Szmek 930e1b
diff --git a/src/core/socket.c b/src/core/socket.c
Zbigniew Jędrzejewski-Szmek 930e1b
index 6c0ac1a..d368f7e 100644
Zbigniew Jędrzejewski-Szmek 930e1b
--- a/src/core/socket.c
Zbigniew Jędrzejewski-Szmek 930e1b
+++ b/src/core/socket.c
Zbigniew Jędrzejewski-Szmek 930e1b
@@ -73,7 +73,7 @@ static void socket_init(Unit *u) {
Zbigniew Jędrzejewski-Szmek 930e1b
         assert(u->load_state == UNIT_STUB);
Zbigniew Jędrzejewski-Szmek 930e1b
 
Zbigniew Jędrzejewski-Szmek 930e1b
         s->backlog = SOMAXCONN;
Zbigniew Jędrzejewski-Szmek 930e1b
-        s->timeout_usec = DEFAULT_TIMEOUT_USEC;
Zbigniew Jędrzejewski-Szmek 930e1b
+        s->timeout_usec = u->manager->default_timeout_start_usec;
Zbigniew Jędrzejewski-Szmek 930e1b
         s->directory_mode = 0755;
Zbigniew Jędrzejewski-Szmek 930e1b
         s->socket_mode = 0666;
Zbigniew Jędrzejewski-Szmek 930e1b
 
Zbigniew Jędrzejewski-Szmek 930e1b
diff --git a/src/core/swap.c b/src/core/swap.c
Zbigniew Jędrzejewski-Szmek 930e1b
index a68ab7c..147f710 100644
Zbigniew Jędrzejewski-Szmek 930e1b
--- a/src/core/swap.c
Zbigniew Jędrzejewski-Szmek 930e1b
+++ b/src/core/swap.c
Zbigniew Jędrzejewski-Szmek 930e1b
@@ -86,7 +86,7 @@ static void swap_init(Unit *u) {
Zbigniew Jędrzejewski-Szmek 930e1b
         assert(s);
Zbigniew Jędrzejewski-Szmek 930e1b
         assert(UNIT(s)->load_state == UNIT_STUB);
Zbigniew Jędrzejewski-Szmek 930e1b
 
Zbigniew Jędrzejewski-Szmek 930e1b
-        s->timeout_usec = DEFAULT_TIMEOUT_USEC;
Zbigniew Jędrzejewski-Szmek 930e1b
+        s->timeout_usec = u->manager->default_timeout_start_usec;
Zbigniew Jędrzejewski-Szmek 930e1b
 
Zbigniew Jędrzejewski-Szmek 930e1b
         exec_context_init(&s->exec_context);
Zbigniew Jędrzejewski-Szmek 930e1b
         s->exec_context.std_output = u->manager->default_std_output;
Zbigniew Jędrzejewski-Szmek 930e1b
diff --git a/src/core/system.conf b/src/core/system.conf
Zbigniew Jędrzejewski-Szmek 930e1b
index 7b03c87..3c6cc03 100644
Zbigniew Jędrzejewski-Szmek 930e1b
--- a/src/core/system.conf
Zbigniew Jędrzejewski-Szmek 930e1b
+++ b/src/core/system.conf
Zbigniew Jędrzejewski-Szmek 930e1b
@@ -24,6 +24,9 @@
Zbigniew Jędrzejewski-Szmek 930e1b
 #ShutdownWatchdogSec=10min
Zbigniew Jędrzejewski-Szmek 930e1b
 #CapabilityBoundingSet=
Zbigniew Jędrzejewski-Szmek 930e1b
 #TimerSlackNSec=
Zbigniew Jędrzejewski-Szmek 930e1b
+#DefaultTimeoutStartSec=90s
Zbigniew Jędrzejewski-Szmek 930e1b
+#DefaultTimeoutStopSec=90s
Zbigniew Jędrzejewski-Szmek 930e1b
+#DefaultRestartSec=100ms
Zbigniew Jędrzejewski-Szmek 930e1b
 #DefaultEnvironment=
Zbigniew Jędrzejewski-Szmek 930e1b
 #DefaultLimitCPU=
Zbigniew Jędrzejewski-Szmek 930e1b
 #DefaultLimitFSIZE=
Zbigniew Jędrzejewski-Szmek 930e1b
diff --git a/src/core/user.conf b/src/core/user.conf
Zbigniew Jędrzejewski-Szmek 930e1b
index 4a0129a..b030701 100644
Zbigniew Jędrzejewski-Szmek 930e1b
--- a/src/core/user.conf
Zbigniew Jędrzejewski-Szmek 930e1b
+++ b/src/core/user.conf
Zbigniew Jędrzejewski-Szmek 930e1b
@@ -14,3 +14,6 @@
Zbigniew Jędrzejewski-Szmek 930e1b
 #LogLocation=no
Zbigniew Jędrzejewski-Szmek 930e1b
 #DefaultStandardOutput=inherit
Zbigniew Jędrzejewski-Szmek 930e1b
 #DefaultStandardError=inherit
Zbigniew Jędrzejewski-Szmek 930e1b
+#DefaultTimeoutStartSec=90s
Zbigniew Jędrzejewski-Szmek 930e1b
+#DefaultTimeoutStopSec=90s
Zbigniew Jędrzejewski-Szmek 930e1b
+#DefaultRestartSec=100ms