From: Lennart Poettering Date: Sun, 4 Apr 2010 20:51:16 +0000 (+0200) Subject: sysv: require sysinit.service from all sysv services X-Git-Tag: v1~667 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=0fd030bea1afa032d9afc791db4165a6848604b8;ds=inline sysv: require sysinit.service from all sysv services --- 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: