diff options
author | Thomas Haller <thaller@redhat.com> | 2020-04-28 22:12:21 +0200 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2020-04-30 21:47:30 +0200 |
commit | 02513e4b5da30073f116a8162bfe4fa81c771c31 (patch) | |
tree | 6cf8bf2bbb3865c93a6e4574cbd7684f8353349e | |
parent | bee01292f886dcff7114dc421983f1d50f1939b0 (diff) | |
download | NetworkManager-02513e4b5da30073f116a8162bfe4fa81c771c31.tar.gz |
nm-online: allow configuring timeout via NM_ONLINE_TIMEOUT environment
https://bugzilla.redhat.com/show_bug.cgi?id=1828458
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/484
(cherry picked from commit e468b48ab7b8e2ddc8802db4b93e3f13787835e4)
-rw-r--r-- | Makefile.am | 7 | ||||
-rw-r--r-- | clients/nm-online.c | 4 | ||||
-rw-r--r-- | data/NetworkManager-wait-online.service.in | 20 | ||||
-rw-r--r-- | man/nm-online.xml | 3 | ||||
-rw-r--r-- | po/POTFILES.skip | 1 |
5 files changed, 30 insertions, 5 deletions
diff --git a/Makefile.am b/Makefile.am index 2f15ddbd81..6cb709b8d5 100644 --- a/Makefile.am +++ b/Makefile.am @@ -4285,9 +4285,12 @@ clients_nm_online_LDFLAGS = \ -Wl,--version-script="$(srcdir)/linker-script-binary.ver" clients_nm_online_LDADD = \ - shared/nm-libnm-aux/libnm-libnm-aux.la \ libnm/libnm.la \ - $(GLIB_LIBS) + shared/nm-libnm-aux/libnm-libnm-aux.la \ + shared/nm-glib-aux/libnm-glib-aux.la \ + shared/nm-std-aux/libnm-std-aux.la \ + $(GLIB_LIBS) \ + $(NULL) $(clients_nm_online_OBJECTS): $(libnm_core_lib_h_pub_mkenums) $(clients_nm_online_OBJECTS): $(libnm_lib_h_pub_mkenums) diff --git a/clients/nm-online.c b/clients/nm-online.c index 5950da568c..8370f96437 100644 --- a/clients/nm-online.c +++ b/clients/nm-online.c @@ -233,7 +233,7 @@ main (int argc, char *argv[]) OnlineData data = { .retval = EXIT_FAILURE_UNSPECIFIED, }; - int t_secs = 30; + int t_secs; GOptionContext *opt_ctx = NULL; gboolean success; GOptionEntry options[] = { @@ -251,6 +251,8 @@ main (int argc, char *argv[]) bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); textdomain (GETTEXT_PACKAGE); + t_secs = _nm_utils_ascii_str_to_int64 (g_getenv ("NM_ONLINE_TIMEOUT"), 10, 0, G_MAXINT, 30); + data.start_timestamp_ms = _now_ms (); opt_ctx = g_option_context_new (NULL); diff --git a/data/NetworkManager-wait-online.service.in b/data/NetworkManager-wait-online.service.in index 8963246850..26a8f25362 100644 --- a/data/NetworkManager-wait-online.service.in +++ b/data/NetworkManager-wait-online.service.in @@ -6,9 +6,27 @@ After=NetworkManager.service Before=network-online.target [Service] +# `nm-online -s` waits until the point when NetworkManager logs +# "startup complete". That is when startup actions are settled and +# devices and profiles reached a conclusive activated or deactivated +# state. It depends on which profiles are configured to autoconnect and +# also depends on profile settings like ipv4.may-fail/ipv6.may-fail, +# which affect when a profile is considered fully activated. +# Check NetworkManager logs to find out why wait-online takes a certain +# time. + Type=oneshot -ExecStart=@bindir@/nm-online -s -q --timeout=30 +ExecStart=@bindir@/nm-online -s -q RemainAfterExit=yes +# Set $NM_ONLINE_TIMEOUT variable for timeout in seconds. +# Edit with `systemctl edit NetworkManager-wait-online`. +# +# Note, this timeout should commonly not be reached. If your boot +# gets delayed too long, then the solution is usually not to decrease +# the timeout, but to fix your setup so that the connected state +# gets reached earlier. +Environment=NM_ONLINE_TIMEOUT=30 + [Install] WantedBy=network-online.target diff --git a/man/nm-online.xml b/man/nm-online.xml index c36dda8dd8..a0db6b3d88 100644 --- a/man/nm-online.xml +++ b/man/nm-online.xml @@ -145,7 +145,8 @@ <listitem> <para>Time to wait for a connection, in seconds. If the option is not provided, - the default timeout is 30 seconds.</para> + the environment variable <literal>NM_ONLINE_TIMEOUT</literal> is honored. + The default timeout is 30 seconds.</para> </listitem> </varlistentry> diff --git a/po/POTFILES.skip b/po/POTFILES.skip index da2247a0a0..425b100e5c 100644 --- a/po/POTFILES.skip +++ b/po/POTFILES.skip @@ -1,5 +1,6 @@ clients/cloud-setup/nm-cloud-setup.service.in contrib/fedora/rpm/ +data/NetworkManager-wait-online.service.in data/NetworkManager.service.in data/org.freedesktop.NetworkManager.policy.in examples/python/NetworkManager.py |