mirror of
https://github.com/systemd/systemd-stable.git
synced 2025-01-11 05:17:44 +03:00
Configurable Timeouts/Restarts default values
https://bugs.freedesktop.org/show_bug.cgi?id=71132 Patch adds DefaultTimeoutStartSec, DefaultTimeoutStopSec, DefaultRestartSec configuration options to manager configuration file.
This commit is contained in:
parent
7b05894275
commit
1f19a534ea
@ -61,7 +61,6 @@
|
||||
otherwise <filename>user.conf</filename>. These
|
||||
configuration files contain a few settings controlling
|
||||
basic manager operations.</para>
|
||||
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
@ -94,6 +93,29 @@
|
||||
arguments.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>DefaultTimeoutStartSec=</varname></term>
|
||||
<term><varname>DefaultTimeoutStopSec=</varname></term>
|
||||
<term><varname>DefaultRestartSec=</varname></term>
|
||||
|
||||
<listitem><para>Configures the default
|
||||
time-outs for starting and stopping of
|
||||
units, as well as the default time to
|
||||
sleep between automatic restarts of a
|
||||
units, as configured per-unit in
|
||||
<varname>TimeoutStartSec=</varname>,
|
||||
<varname>TimeoutStopSec=</varname> and
|
||||
<varname>RestartSec=</varname> (for
|
||||
service units see
|
||||
<citerefentry><refentrytitle>systemd.service</refentrytitle><manvolnum>5</manvolnum></citerefentry>
|
||||
for details on the per-unit
|
||||
settings). For non-service units
|
||||
<varname>DefaultTimeoutStartSec=</varname>
|
||||
sets the default
|
||||
<varname>TimeoutSec=</varname> value.
|
||||
</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>CPUAffinity=</varname></term>
|
||||
|
||||
|
@ -260,8 +260,8 @@
|
||||
Takes a unit-less value in seconds, or
|
||||
a time span value such as "5min
|
||||
20s". Pass 0 to disable the timeout
|
||||
logic. Defaults to
|
||||
90s.</para></listitem>
|
||||
logic. Default value is setted up in manager configuration
|
||||
file via <term><varname>DefaultTimeoutStart=</varname></term>.</para></listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
|
@ -524,7 +524,8 @@
|
||||
Takes a unit-less value in seconds, or a
|
||||
time span value such as "5min
|
||||
20s". Pass 0 to disable the timeout
|
||||
logic. Defaults to 90s, except when
|
||||
logic. Defaults to <varname>TimeoutStartSec=</varname> in
|
||||
manager configuration file, except when
|
||||
<varname>Type=oneshot</varname> is
|
||||
used in which case the timeout
|
||||
is disabled by default.
|
||||
@ -545,7 +546,8 @@
|
||||
Takes a unit-less value in seconds, or a
|
||||
time span value such as "5min
|
||||
20s". Pass 0 to disable the timeout
|
||||
logic. Defaults to 90s.
|
||||
logic. Defaults to <varname>TimeoutStartSec=</varname> in
|
||||
manager configuration file.
|
||||
</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
|
@ -679,8 +679,8 @@
|
||||
Takes a unit-less value in seconds, or
|
||||
a time span value such as "5min
|
||||
20s". Pass 0 to disable the timeout
|
||||
logic. Defaults to
|
||||
90s.</para></listitem>
|
||||
logic. Defaults to <varname>TimeoutStartSec=</varname> in
|
||||
manager configuration file.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
|
@ -186,8 +186,8 @@
|
||||
Takes a unit-less value in seconds, or
|
||||
a time span value such as "5min
|
||||
20s". Pass 0 to disable the timeout
|
||||
logic. Defaults to
|
||||
90s.</para></listitem>
|
||||
logic. Defaults to <varname>TimeoutStartSec=</varname> in
|
||||
manager configuration file.</para></listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
|
@ -70,7 +70,7 @@ static void device_init(Unit *u) {
|
||||
* indefinitely for plugged in devices, something which cannot
|
||||
* happen for the other units since their operations time out
|
||||
* anyway. */
|
||||
UNIT(d)->job_timeout = DEFAULT_TIMEOUT_USEC;
|
||||
UNIT(d)->job_timeout = u->manager->default_timeout_start_usec;
|
||||
|
||||
UNIT(d)->ignore_on_isolate = true;
|
||||
UNIT(d)->ignore_on_snapshot = true;
|
||||
|
@ -90,6 +90,9 @@ static bool arg_switched_root = false;
|
||||
static char ***arg_join_controllers = NULL;
|
||||
static ExecOutput arg_default_std_output = EXEC_OUTPUT_JOURNAL;
|
||||
static ExecOutput arg_default_std_error = EXEC_OUTPUT_INHERIT;
|
||||
static usec_t arg_default_restart_usec = DEFAULT_RESTART_USEC;
|
||||
static usec_t arg_default_timeout_start_usec = DEFAULT_TIMEOUT_USEC;
|
||||
static usec_t arg_default_timeout_stop_usec = DEFAULT_TIMEOUT_USEC;
|
||||
static usec_t arg_runtime_watchdog = 0;
|
||||
static usec_t arg_shutdown_watchdog = 10 * USEC_PER_MINUTE;
|
||||
static char **arg_default_environment = NULL;
|
||||
@ -636,6 +639,9 @@ static int parse_config_file(void) {
|
||||
{ "Manager", "CPUAffinity", config_parse_cpu_affinity2, 0, NULL },
|
||||
{ "Manager", "DefaultStandardOutput", config_parse_output, 0, &arg_default_std_output },
|
||||
{ "Manager", "DefaultStandardError", config_parse_output, 0, &arg_default_std_error },
|
||||
{ "Manager", "DefaultTimeoutStartSec", config_parse_sec, 0, &arg_default_timeout_start_usec },
|
||||
{ "Manager", "DefaultTimeoutStopSec", config_parse_sec, 0, &arg_default_timeout_stop_usec },
|
||||
{ "Manager", "DefaultRestartSec", config_parse_sec, 0, &arg_default_restart_usec },
|
||||
{ "Manager", "JoinControllers", config_parse_join_controllers, 0, &arg_join_controllers },
|
||||
{ "Manager", "RuntimeWatchdogSec", config_parse_sec, 0, &arg_runtime_watchdog },
|
||||
{ "Manager", "ShutdownWatchdogSec", config_parse_sec, 0, &arg_shutdown_watchdog },
|
||||
@ -1518,6 +1524,9 @@ int main(int argc, char *argv[]) {
|
||||
m->confirm_spawn = arg_confirm_spawn;
|
||||
m->default_std_output = arg_default_std_output;
|
||||
m->default_std_error = arg_default_std_error;
|
||||
m->default_restart_usec = arg_default_restart_usec;
|
||||
m->default_timeout_start_usec = arg_default_timeout_start_usec;
|
||||
m->default_timeout_stop_usec = arg_default_timeout_stop_usec;
|
||||
m->runtime_watchdog = arg_runtime_watchdog;
|
||||
m->shutdown_watchdog = arg_shutdown_watchdog;
|
||||
m->userspace_timestamp = userspace_timestamp;
|
||||
|
@ -230,6 +230,9 @@ struct Manager {
|
||||
|
||||
ExecOutput default_std_output, default_std_error;
|
||||
|
||||
usec_t default_restart_usec, default_timeout_start_usec,
|
||||
default_timeout_stop_usec;
|
||||
|
||||
struct rlimit *rlimit[RLIMIT_NLIMITS];
|
||||
|
||||
/* non-zero if we are reloading or reexecuting, */
|
||||
|
@ -131,7 +131,7 @@ static void mount_init(Unit *u) {
|
||||
assert(u);
|
||||
assert(u->load_state == UNIT_STUB);
|
||||
|
||||
m->timeout_usec = DEFAULT_TIMEOUT_USEC;
|
||||
m->timeout_usec = u->manager->default_timeout_start_usec;
|
||||
m->directory_mode = 0755;
|
||||
|
||||
exec_context_init(&m->exec_context);
|
||||
|
@ -46,7 +46,7 @@ static void scope_init(Unit *u) {
|
||||
assert(u);
|
||||
assert(u->load_state == UNIT_STUB);
|
||||
|
||||
s->timeout_stop_usec = DEFAULT_TIMEOUT_USEC;
|
||||
s->timeout_stop_usec = u->manager->default_timeout_stop_usec;
|
||||
|
||||
watch_init(&s->timer_watch);
|
||||
|
||||
|
@ -124,9 +124,9 @@ static void service_init(Unit *u) {
|
||||
assert(u);
|
||||
assert(u->load_state == UNIT_STUB);
|
||||
|
||||
s->timeout_start_usec = DEFAULT_TIMEOUT_USEC;
|
||||
s->timeout_stop_usec = DEFAULT_TIMEOUT_USEC;
|
||||
s->restart_usec = DEFAULT_RESTART_USEC;
|
||||
s->timeout_start_usec = u->manager->default_timeout_start_usec;
|
||||
s->timeout_stop_usec = u->manager->default_timeout_stop_usec;
|
||||
s->restart_usec = u->manager->default_restart_usec;
|
||||
s->type = _SERVICE_TYPE_INVALID;
|
||||
|
||||
watch_init(&s->watchdog_watch);
|
||||
|
@ -74,7 +74,7 @@ static void socket_init(Unit *u) {
|
||||
assert(u->load_state == UNIT_STUB);
|
||||
|
||||
s->backlog = SOMAXCONN;
|
||||
s->timeout_usec = DEFAULT_TIMEOUT_USEC;
|
||||
s->timeout_usec = u->manager->default_timeout_start_usec;
|
||||
s->directory_mode = 0755;
|
||||
s->socket_mode = 0666;
|
||||
|
||||
|
@ -86,7 +86,7 @@ static void swap_init(Unit *u) {
|
||||
assert(s);
|
||||
assert(UNIT(s)->load_state == UNIT_STUB);
|
||||
|
||||
s->timeout_usec = DEFAULT_TIMEOUT_USEC;
|
||||
s->timeout_usec = u->manager->default_timeout_start_usec;
|
||||
|
||||
exec_context_init(&s->exec_context);
|
||||
s->exec_context.std_output = u->manager->default_std_output;
|
||||
|
@ -24,6 +24,9 @@
|
||||
#ShutdownWatchdogSec=10min
|
||||
#CapabilityBoundingSet=
|
||||
#TimerSlackNSec=
|
||||
#DefaultTimeoutStartSec=90s
|
||||
#DefaultTimeoutStopSec=90s
|
||||
#DefaultRestartSec=100ms
|
||||
#DefaultEnvironment=
|
||||
#DefaultLimitCPU=
|
||||
#DefaultLimitFSIZE=
|
||||
|
@ -14,3 +14,6 @@
|
||||
#LogLocation=no
|
||||
#DefaultStandardOutput=inherit
|
||||
#DefaultStandardError=inherit
|
||||
#DefaultTimeoutStartSec=90s
|
||||
#DefaultTimeoutStopSec=90s
|
||||
#DefaultRestartSec=100ms
|
||||
|
Loading…
Reference in New Issue
Block a user