chiark / gitweb /
sysv: require sysinit.service from all sysv services
[elogind.git] / service.c
index 8018bd847cbfe6b7c7c2f65f7c73876b07588d9f..53d5505c2ea16b007607291f7e32faf54b3d8763 100644 (file)
--- 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:
@@ -612,11 +616,13 @@ static void service_dump(Unit *u, FILE *f, const char *prefix) {
                 "%sService State: %s\n"
                 "%sPermissionsStartOnly: %s\n"
                 "%sRootDirectoryStartOnly: %s\n"
-                "%sValidNoProcess: %s\n",
+                "%sValidNoProcess: %s\n"
+                "%sType: %s\n",
                 prefix, service_state_to_string(s->state),
                 prefix, yes_no(s->permissions_start_only),
                 prefix, yes_no(s->root_directory_start_only),
-                prefix, yes_no(s->valid_no_process));
+                prefix, yes_no(s->valid_no_process),
+                prefix, service_type_to_string(s->type));
 
         if (s->pid_file)
                 fprintf(f,