chiark / gitweb /
sysv: handle suse style boot.d dirs
[elogind.git] / service.c
index caef844056a904ce4334122e17208751bf9a68b6..da1c5e78e2a1faa85d429fd6688bf640ea2efebf 100644 (file)
--- a/service.c
+++ b/service.c
 #define LINE_MAX 4096
 
 static const char * const rcnd_table[] = {
-        "../rc0.d", SPECIAL_RUNLEVEL0_TARGET,
-        "../rc1.d", SPECIAL_RUNLEVEL1_TARGET,
-        "../rc2.d", SPECIAL_RUNLEVEL2_TARGET,
-        "../rc3.d", SPECIAL_RUNLEVEL3_TARGET,
-        "../rc4.d", SPECIAL_RUNLEVEL4_TARGET,
-        "../rc5.d", SPECIAL_RUNLEVEL5_TARGET,
-        "../rc6.d", SPECIAL_RUNLEVEL6_TARGET
+        "/rc0.d",  SPECIAL_RUNLEVEL0_TARGET,
+        "/rc1.d",  SPECIAL_RUNLEVEL1_TARGET,
+        "/rc2.d",  SPECIAL_RUNLEVEL2_TARGET,
+        "/rc3.d",  SPECIAL_RUNLEVEL3_TARGET,
+        "/rc4.d",  SPECIAL_RUNLEVEL4_TARGET,
+        "/rc5.d",  SPECIAL_RUNLEVEL5_TARGET,
+        "/rc6.d",  SPECIAL_RUNLEVEL6_TARGET,
+        "/boot.d", SPECIAL_BASIC_TARGET
 };
 
-
 static const UnitActiveState state_translation_table[_SERVICE_STATE_MAX] = {
         [SERVICE_DEAD] = UNIT_INACTIVE,
         [SERVICE_START_PRE] = UNIT_ACTIVATING,
@@ -218,7 +218,7 @@ static int priority_from_rcd(Service *s, const char *init_script) {
         char **p;
         unsigned i;
 
-        STRV_FOREACH(p, UNIT(s)->meta.manager->sysvinit_path)
+        STRV_FOREACH(p, UNIT(s)->meta.manager->sysvrcnd_path)
                 for (i = 0; i < ELEMENTSOF(rcnd_table); i += 2) {
                         char *path;
                         DIR *d;
@@ -565,8 +565,8 @@ static int service_load_sysv_path(Service *s, const char *path, UnitLoadState *n
         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)
+        if ((r = unit_add_dependency_by_name(u, UNIT_REQUIRES, SPECIAL_BASIC_TARGET)) < 0 ||
+            (r = unit_add_dependency_by_name(u, UNIT_AFTER, SPECIAL_BASIC_TARGET)) < 0)
                 goto finish;
 
         *new_state = UNIT_LOADED;
@@ -732,7 +732,6 @@ static void service_dump(Unit *u, FILE *f, const char *prefix) {
                         "%sPIDFile: %s\n",
                         prefix, s->pid_file);
 
-
         exec_context_dump(&s->exec_context, f, prefix);
 
         for (c = 0; c < _SERVICE_EXEC_MAX; c++) {
@@ -1752,7 +1751,7 @@ static int service_enumerate(Manager *m) {
 
         assert(m);
 
-        STRV_FOREACH(p, m->sysvinit_path)
+        STRV_FOREACH(p, m->sysvrcnd_path)
                 for (i = 0; i < ELEMENTSOF(rcnd_table); i += 2) {
                         struct dirent *de;