forked from pool/systemd
Frederic Crozat
2176c3ed9b
+ reason why a service failed is now exposed in the"Result" D-Bus property. + Rudimentary service watchdog support (not complete) + Improve bootcharts, by immediatly changing argv[0] after forking to to reflect which process will be executed. + Various bug fixes. - Add remote-fs-after-network.patch and update insserv patch: ensure remote-fs-pre.target is enabled and started before network mount points (bnc#744293). - Ensure journald doesn't prevent syslogs to read from /proc/kmsg. OBS-URL: https://build.opensuse.org/package/show/Base:System/systemd?expand=0&rev=240
55 lines
2.9 KiB
Diff
55 lines
2.9 KiB
Diff
From 6620bceb7233a830be3635a4f7a7dc75c13a9c8e Mon Sep 17 00:00:00 2001
|
|
From: Frederic Crozat <fcrozat@suse.com>
|
|
Date: Fri, 30 Sep 2011 14:12:45 +0200
|
|
Subject: [PATCH] service: Fix dependencies added when parsing insserv.conf
|
|
|
|
---
|
|
src/service.c | 16 +++++++++-------
|
|
1 files changed, 9 insertions(+), 7 deletions(-)
|
|
|
|
Index: systemd-40/src/service.c
|
|
===================================================================
|
|
--- systemd-40.orig/src/service.c
|
|
+++ systemd-40/src/service.c
|
|
@@ -3162,23 +3162,32 @@ static void sysv_facility_in_insserv_con
|
|
Unit *u;
|
|
if (sysv_translate_facility(parsed[0], NULL, &facility) < 0)
|
|
continue;
|
|
+ if (streq(facility, SPECIAL_REMOTE_FS_TARGET)) {
|
|
+ /* insert also a Wants dependency from remote-fs-pre on remote-fs */
|
|
+ u = manager_get_unit(mgr, SPECIAL_REMOTE_FS_TARGET);
|
|
+ unit_add_dependency_by_name(u, UNIT_WANTS,
|
|
+ SPECIAL_REMOTE_FS_PRE_TARGET, NULL, true);
|
|
+ free (facility);
|
|
+ facility=strdup(SPECIAL_REMOTE_FS_PRE_TARGET);
|
|
+ }
|
|
+
|
|
if ((u = manager_get_unit(mgr, facility)) && (u->type == UNIT_TARGET)) {
|
|
- UnitDependency e;
|
|
char *dep = NULL, *name, **j;
|
|
|
|
STRV_FOREACH (j, parsed+1) {
|
|
- if (*j[0]=='+') {
|
|
- e = UNIT_WANTS;
|
|
+ if (*j[0]=='+')
|
|
name = *j+1;
|
|
- }
|
|
- else {
|
|
- e = UNIT_REQUIRES;
|
|
+ else
|
|
name = *j;
|
|
- }
|
|
+ if (streq(name, "boot.localfs") ||
|
|
+ streq(name, "boot.crypto"))
|
|
+ continue;
|
|
if (sysv_translate_facility(name, NULL, &dep) < 0)
|
|
continue;
|
|
|
|
- r = unit_add_two_dependencies_by_name(u, UNIT_BEFORE, e, dep, NULL, true);
|
|
+ r = unit_add_dependency_by_name_inverse(u, UNIT_BEFORE, dep, NULL, true);
|
|
+ if (*j[0]!='+')
|
|
+ r = unit_add_dependency_by_name(u, UNIT_REQUIRES, dep, NULL, true);
|
|
free(dep);
|
|
}
|
|
}
|