|
Zbigniew Jędrzejewski-Szmek |
a59965 |
From 040f67302cea64b294ddfa2c46b7571b202ac16d Mon Sep 17 00:00:00 2001
|
|
Zbigniew Jędrzejewski-Szmek |
a59965 |
From: Tom Gundersen <teg@jklm.no>
|
|
Zbigniew Jędrzejewski-Szmek |
a59965 |
Date: Mon, 12 May 2014 21:26:54 +0200
|
|
Zbigniew Jędrzejewski-Szmek |
a59965 |
Subject: [PATCH] core: sysvcompat - $network should be equivalent to
|
|
Zbigniew Jędrzejewski-Szmek |
a59965 |
network-online, rather than network target
|
|
Zbigniew Jędrzejewski-Szmek |
a59965 |
MIME-Version: 1.0
|
|
Zbigniew Jędrzejewski-Szmek |
a59965 |
Content-Type: text/plain; charset=UTF-8
|
|
Zbigniew Jędrzejewski-Szmek |
a59965 |
Content-Transfer-Encoding: 8bit
|
|
Zbigniew Jędrzejewski-Szmek |
a59965 |
|
|
Zbigniew Jędrzejewski-Szmek |
a59965 |
Most likely the facility needed is actual connectivity, rather than whether or not the
|
|
Zbigniew Jędrzejewski-Szmek |
a59965 |
network managment daemon is running.
|
|
Zbigniew Jędrzejewski-Szmek |
a59965 |
|
|
Zbigniew Jędrzejewski-Szmek |
a59965 |
We also need to explicitly pull in the network-online.target, as it is not active by
|
|
Zbigniew Jędrzejewski-Szmek |
a59965 |
default.
|
|
Zbigniew Jędrzejewski-Szmek |
a59965 |
|
|
Zbigniew Jędrzejewski-Szmek |
a59965 |
This means {systemd-networkd,NetworkManager}-wait-online.service, can be enabled by default
|
|
Zbigniew Jędrzejewski-Szmek |
a59965 |
as part of network-online.target, and only delay boot when some service actively pulls it in.
|
|
Zbigniew Jędrzejewski-Szmek |
a59965 |
|
|
Zbigniew Jędrzejewski-Szmek |
a59965 |
See: <https://bugzilla.gnome.org/show_bug.cgi?id=728965>
|
|
Zbigniew Jędrzejewski-Szmek |
a59965 |
|
|
Zbigniew Jędrzejewski-Szmek |
a59965 |
Cc: Pavel Šimerda <psimerda@redhat.com>
|
|
Zbigniew Jędrzejewski-Szmek |
a59965 |
Cc: Michal Sekletar <msekleta@redhat.com>
|
|
Zbigniew Jędrzejewski-Szmek |
a59965 |
(cherry picked from commit 0404c609f399b2092a3de52eef9d75b0dc12e94c)
|
|
Zbigniew Jędrzejewski-Szmek |
a59965 |
(cherry picked from commit 81d4159e6eadb34c25a5643ad95730da2f6f2d69)
|
|
Zbigniew Jędrzejewski-Szmek |
a59965 |
---
|
|
Zbigniew Jędrzejewski-Szmek |
a59965 |
src/core/service.c | 8 ++++++--
|
|
Zbigniew Jędrzejewski-Szmek |
a59965 |
1 file changed, 6 insertions(+), 2 deletions(-)
|
|
Zbigniew Jędrzejewski-Szmek |
a59965 |
|
|
Zbigniew Jędrzejewski-Szmek |
a59965 |
diff --git a/src/core/service.c b/src/core/service.c
|
|
Zbigniew Jędrzejewski-Szmek |
1cc3df |
index c8dbbeff1b..3bda9a37d6 100644
|
|
Zbigniew Jędrzejewski-Szmek |
a59965 |
--- a/src/core/service.c
|
|
Zbigniew Jędrzejewski-Szmek |
a59965 |
+++ b/src/core/service.c
|
|
Zbigniew Jędrzejewski-Szmek |
a59965 |
@@ -359,7 +359,7 @@ static int sysv_translate_facility(const char *name, const char *filename, char
|
|
Zbigniew Jędrzejewski-Szmek |
a59965 |
static const char * const table[] = {
|
|
Zbigniew Jędrzejewski-Szmek |
a59965 |
/* LSB defined facilities */
|
|
Zbigniew Jędrzejewski-Szmek |
a59965 |
"local_fs", NULL,
|
|
Zbigniew Jędrzejewski-Szmek |
a59965 |
- "network", SPECIAL_NETWORK_TARGET,
|
|
Zbigniew Jędrzejewski-Szmek |
a59965 |
+ "network", SPECIAL_NETWORK_ONLINE_TARGET,
|
|
Zbigniew Jędrzejewski-Szmek |
a59965 |
"named", SPECIAL_NSS_LOOKUP_TARGET,
|
|
Zbigniew Jędrzejewski-Szmek |
a59965 |
"portmap", SPECIAL_RPCBIND_TARGET,
|
|
Zbigniew Jędrzejewski-Szmek |
a59965 |
"remote_fs", SPECIAL_REMOTE_FS_TARGET,
|
|
Zbigniew Jędrzejewski-Szmek |
a59965 |
@@ -828,7 +828,11 @@ static int service_load_sysv_path(Service *s, const char *path) {
|
|
Zbigniew Jędrzejewski-Szmek |
a59965 |
if (r == 0)
|
|
Zbigniew Jędrzejewski-Szmek |
a59965 |
continue;
|
|
Zbigniew Jędrzejewski-Szmek |
a59965 |
|
|
Zbigniew Jędrzejewski-Szmek |
a59965 |
- r = unit_add_dependency_by_name(u, startswith_no_case(t, "X-Start-Before:") ? UNIT_BEFORE : UNIT_AFTER, m, NULL, true);
|
|
Zbigniew Jędrzejewski-Szmek |
a59965 |
+ if (streq(m, SPECIAL_NETWORK_ONLINE_TARGET) && !startswith_no_case(t, "X-Start-Before:"))
|
|
Zbigniew Jędrzejewski-Szmek |
a59965 |
+ /* the network-online target is special, as it needs to be actively pulled in */
|
|
Zbigniew Jędrzejewski-Szmek |
a59965 |
+ r = unit_add_two_dependencies_by_name(u, UNIT_AFTER, UNIT_WANTS, m, NULL, true);
|
|
Zbigniew Jędrzejewski-Szmek |
a59965 |
+ else
|
|
Zbigniew Jędrzejewski-Szmek |
a59965 |
+ r = unit_add_dependency_by_name(u, startswith_no_case(t, "X-Start-Before:") ? UNIT_BEFORE : UNIT_AFTER, m, NULL, true);
|
|
Zbigniew Jędrzejewski-Szmek |
a59965 |
|
|
Zbigniew Jędrzejewski-Szmek |
a59965 |
if (r < 0)
|
|
Zbigniew Jędrzejewski-Szmek |
a59965 |
log_error_unit(u->id, "[%s:%u] Failed to add dependency on %s, ignoring: %s",
|