X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fcore%2Fservice.c;h=cf0bbe05fc649fa3d870acc29fd5f45322253d7a;hb=1e335af70f29d1a1e9c132338aa35b8971934441;hp=fa8a1cb0390a79a1ff07551cee6c9fa4043d038e;hpb=ce2c2265376c22c16b4c9bff3ac2d402ddbeda03;p=elogind.git diff --git a/src/core/service.c b/src/core/service.c index fa8a1cb03..cf0bbe05f 100644 --- a/src/core/service.c +++ b/src/core/service.c @@ -36,7 +36,7 @@ #include "unit-printf.h" #include "dbus-service.h" #include "special.h" -#include "bus-errors.h" +#include "dbus-common.h" #include "exit-status.h" #include "def.h" #include "path-util.h" @@ -1148,6 +1148,16 @@ static int service_add_default_dependencies(Service *s) { SPECIAL_SOCKETS_TARGET, NULL, true); if (r < 0) return r; + + r = unit_add_two_dependencies_by_name(UNIT(s), UNIT_AFTER, UNIT_REQUIRES, + SPECIAL_TIMERS_TARGET, NULL, true); + if (r < 0) + return r; + + r = unit_add_two_dependencies_by_name(UNIT(s), UNIT_AFTER, UNIT_REQUIRES, + SPECIAL_PATHS_TARGET, NULL, true); + if (r < 0) + return r; } /* Second, activate normal shutdown */ @@ -1265,7 +1275,7 @@ static void service_dump(Unit *u, FILE *f, const char *prefix) { ServiceExecCommand c; Service *s = SERVICE(u); const char *prefix2; - char _cleanup_free_ *p2 = NULL; + _cleanup_free_ char *p2 = NULL; assert(s); @@ -1363,7 +1373,7 @@ static void service_dump(Unit *u, FILE *f, const char *prefix) { } static int service_load_pid_file(Service *s, bool may_warn) { - char _cleanup_free_ *k = NULL; + _cleanup_free_ char *k = NULL; int r; pid_t pid; @@ -1730,9 +1740,9 @@ static int service_spawn( pid_t pid; int r; int *fds = NULL; - int _cleanup_free_ *fdsbuf = NULL; + _cleanup_free_ int *fdsbuf = NULL; unsigned n_fds = 0, n_env = 0; - char _cleanup_strv_free_ + _cleanup_strv_free_ char **argv = NULL, **final_env = NULL, **our_env = NULL; assert(s); @@ -3434,10 +3444,10 @@ static void service_notify_message(Unit *u, pid_t pid, char **tags) { static int service_enumerate(Manager *m) { char **p; unsigned i; - DIR _cleanup_closedir_ *d = NULL; - char _cleanup_free_ *path = NULL, *fpath = NULL, *name = NULL; - Set *runlevel_services[ELEMENTSOF(rcnd_table)]; - Set _cleanup_set_free_ *shutdown_services = NULL; + _cleanup_closedir_ DIR *d = NULL; + _cleanup_free_ char *path = NULL, *fpath = NULL, *name = NULL; + Set *runlevel_services[ELEMENTSOF(rcnd_table)] = {}; + _cleanup_set_free_ Set *shutdown_services = NULL; Unit *service; Iterator j; int r; @@ -3447,8 +3457,6 @@ static int service_enumerate(Manager *m) { if (m->running_as != SYSTEMD_SYSTEM) return 0; - zero(runlevel_services); - STRV_FOREACH(p, m->lookup_paths.sysvrcnd_path) for (i = 0; i < ELEMENTSOF(rcnd_table); i ++) { struct dirent *de;