X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fmain.c;h=db2a767818364458c3268739ac7493b3f85e859b;hb=b1fc29fb70de560fe9a7a744a20a67aaa4b68b5f;hp=8a7f18ea9c38c2688b9f5ebe3f765fe9643d82df;hpb=2cb1a60d14f869023652482a380ca7b659dcf78f;p=elogind.git diff --git a/src/main.c b/src/main.c index 8a7f18ea9..db2a76781 100644 --- a/src/main.c +++ b/src/main.c @@ -116,7 +116,7 @@ _noreturn_ static void crash(int sig) { else if (!WCOREDUMP(status)) log_error("Caught <%s>, core dump failed.", strsignal(sig)); else - log_error("Caught <%s>, dumped core as pid %llu.", strsignal(sig), (unsigned long long) pid); + log_error("Caught <%s>, dumped core as pid %lu.", strsignal(sig), (unsigned long) pid); } } @@ -152,7 +152,7 @@ _noreturn_ static void crash(int sig) { _exit(1); } - log_info("Successfully spawned crash shall as pid %llu.", (unsigned long long) pid); + log_info("Successfully spawned crash shall as pid %lu.", (unsigned long) pid); } log_info("Freezing execution."); @@ -412,19 +412,25 @@ static int parse_argv(int argc, char *argv[]) { case ARG_LOG_COLOR: - if ((r = log_show_color_from_string(optarg)) < 0) { - log_error("Failed to parse log color setting %s.", optarg); - return r; - } + if (optarg) { + if ((r = log_show_color_from_string(optarg)) < 0) { + log_error("Failed to parse log color setting %s.", optarg); + return r; + } + } else + log_show_color(true); break; case ARG_LOG_LOCATION: - if ((r = log_show_location_from_string(optarg)) < 0) { - log_error("Failed to parse log location setting %s.", optarg); - return r; - } + if (optarg) { + if ((r = log_show_location_from_string(optarg)) < 0) { + log_error("Failed to parse log location setting %s.", optarg); + return r; + } + } else + log_show_location(true); break; @@ -520,7 +526,7 @@ static int parse_argv(int argc, char *argv[]) { * ignore and unconditionally read from * /proc/cmdline. However, we need to ignore those arguments * here. */ - if (running_as != MANAGER_INIT && optind < argc) { + if (running_as != MANAGER_SYSTEM && optind < argc) { log_error("Excess arguments."); return -EINVAL; } @@ -534,7 +540,7 @@ static int help(void) { "Starts up and maintains the system or a session.\n\n" " -h --help Show this help\n" " --unit=UNIT Set default unit\n" - " --running-as=AS Set running as (init, system, session)\n" + " --running-as=AS Set running as (system, session)\n" " --test Determine startup sequence, dump it and exit\n" " --dump-configuration-items Dump understood unit configuration items\n" " --confirm-spawn Ask for confirmation when spawning processes\n" @@ -625,7 +631,7 @@ int main(int argc, char *argv[]) { log_set_max_level(LOG_DEBUG); if (getpid() == 1) { - running_as = MANAGER_INIT; + running_as = MANAGER_SYSTEM; log_set_target(LOG_TARGET_SYSLOG_OR_KMSG); } else { running_as = MANAGER_SESSION; @@ -647,7 +653,7 @@ int main(int argc, char *argv[]) { /* If we are init, we can block sigkill. Yay. */ ignore_signals(SIGNALS_IGNORE, -1); - if (running_as != MANAGER_SESSION) + if (running_as == MANAGER_SYSTEM) if (parse_proc_cmdline() < 0) goto finish; @@ -684,12 +690,12 @@ int main(int argc, char *argv[]) { /* Set up PATH unless it is already set */ setenv("PATH", "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", - running_as == MANAGER_INIT); + running_as == MANAGER_SYSTEM); /* Move out of the way, so that we won't block unmounts */ assert_se(chdir("/") == 0); - if (running_as != MANAGER_SESSION) { + if (running_as == MANAGER_SYSTEM) { /* Become a session leader if we aren't one yet. */ setsid(); @@ -702,7 +708,7 @@ int main(int argc, char *argv[]) { /* Reset the console, but only if this is really init and we * are freshly booted */ - if (running_as != MANAGER_SESSION && action == ACTION_RUN) { + if (running_as == MANAGER_SYSTEM && action == ACTION_RUN) { console_setup(getpid() == 1 && !serialization); make_null_stdio(); } @@ -717,7 +723,7 @@ int main(int argc, char *argv[]) { log_debug("systemd running in %s mode.", manager_running_as_to_string(running_as)); - if (running_as == MANAGER_INIT) { + if (running_as == MANAGER_SYSTEM) { kmod_setup(); hostname_setup(); loopback_setup();