X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fservice.c;h=c052d7cdcbc291363c38a405424d5221e0ebe96b;hb=6e98720f14dc25ee1d43f951d5c4d79b04ad7506;hp=fce1b27aca64f2018a9a6eeeea0225d806cb0254;hpb=2cf3143ac3650feff2e3069d6d02bb8e46ab1929;p=elogind.git diff --git a/src/service.c b/src/service.c index fce1b27ac..c052d7cdc 100644 --- a/src/service.c +++ b/src/service.c @@ -566,7 +566,7 @@ static int service_load_sysv_path(Service *s, const char *path) { if (unit_name_to_type(m) == UNIT_SERVICE) r = unit_add_name(u, m); - else if (s->sysv_start_priority >= 0) + else if (s->sysv_enabled) r = unit_add_two_dependencies_by_name_inverse(u, UNIT_AFTER, UNIT_WANTS, m, NULL, true); else r = unit_add_dependency_by_name_inverse(u, UNIT_AFTER, m, NULL, true); @@ -708,7 +708,7 @@ static int service_load_sysv_path(Service *s, const char *path) { s->type = SERVICE_FORKING; s->valid_no_process = true; s->restart = SERVICE_ONCE; - s->exec_context.std_output = EXEC_OUTPUT_TTY; + s->exec_context.std_output = s->meta.manager->sysv_console ? EXEC_OUTPUT_TTY : EXEC_OUTPUT_NULL; s->exec_context.kill_mode = KILL_PROCESS_GROUP; u->meta.load_state = UNIT_LOADED; @@ -1006,8 +1006,10 @@ static void service_dump(Unit *u, FILE *f, const char *prefix) { if (s->sysv_start_priority >= 0) fprintf(f, - "%sSysVStartPriority: %i\n", - prefix, s->sysv_start_priority); + "%sSysVStartPriority: %i\n" + "%sSysVEnabled: %s\n", + prefix, s->sysv_start_priority, + prefix, yes_no(s->sysv_enabled)); if (s->sysv_runlevels) fprintf(f, "%sSysVRunLevels: %s\n", @@ -2627,9 +2629,11 @@ static int service_enumerate(Manager *m) { } if (de->d_name[0] == 'S' && - (rcnd_table[i].type == RUNLEVEL_UP || rcnd_table[i].type == RUNLEVEL_SYSINIT)) + (rcnd_table[i].type == RUNLEVEL_UP || rcnd_table[i].type == RUNLEVEL_SYSINIT)) { SERVICE(service)->sysv_start_priority = MAX(a*10 + b, SERVICE(service)->sysv_start_priority); + SERVICE(service)->sysv_enabled = true; + } manager_dispatch_load_queue(m); service = unit_follow_merge(service);