From 0fd030bea1afa032d9afc791db4165a6848604b8 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Sun, 4 Apr 2010 22:51:16 +0200 Subject: [PATCH] sysv: require sysinit.service from all sysv services --- manager.h | 1 + service.c | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/manager.h b/manager.h index 8d46323e0..a36174837 100644 --- a/manager.h +++ b/manager.h @@ -82,6 +82,7 @@ struct Watch { #define SPECIAL_REMOTE_FS_TARGET "remote-fs.target" #define SPECIAL_SYSLOG_TARGET "syslog.target" /* Should pull in syslog.socket or syslog.service */ #define SPECIAL_RTC_SET_TARGET "rtc-set.target" /* LSB's $time */ +#define SPECIAL_SYSINIT_SERVICE "sysinit.service" /* For SysV compatibility. Usually an alias for a saner target. On * SysV-free systems this doesn't exist. */ diff --git a/service.c b/service.c index be23b57c4..53d5505c2 100644 --- a/service.c +++ b/service.c @@ -481,6 +481,10 @@ static int service_load_sysv_path(Service *s, const char *path) { if ((r = sysv_exec_commands(s)) < 0) goto finish; + if ((r = unit_add_dependency_by_name(u, UNIT_REQUIRES, SPECIAL_SYSINIT_SERVICE)) < 0 || + (r = unit_add_dependency_by_name(u, UNIT_AFTER, SPECIAL_SYSINIT_SERVICE)) < 0) + goto finish; + r = 1; finish: -- 2.30.2