X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=main.c;h=b4fbdb58f5243027eef64ad5f5868b3ead27706c;hb=2c696a96a2bd63d2ff0d5595622124ef9270b172;hp=397e868e97461e37871b74d5b8391bd0d624848b;hpb=d89e521eadeccc17fd10b574106c0fcd9e9f9340;p=elogind.git diff --git a/main.c b/main.c index 397e868e9..b4fbdb58f 100644 --- a/main.c +++ b/main.c @@ -70,7 +70,7 @@ static int parse_proc_cmdline_word(const char *word) { }; if (startswith(word, "systemd.default=")) - return set_default_unit(word + 15); + return set_default_unit(word + 16); else if (startswith(word, "systemd.log_target=")) { @@ -272,6 +272,9 @@ int main(int argc, char *argv[]) { assert_se(action == ACTION_RUN || action == ACTION_TEST); + /* Set up PATH unless it is already set */ + setenv("PATH", "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", false); + /* Move out of the way, so that we won't block unmounts */ assert_se(chdir("/") == 0); @@ -304,7 +307,12 @@ int main(int argc, char *argv[]) { if ((r = manager_load_unit(m, default_unit, &target)) < 0) { log_error("Failed to load default target: %s", strerror(-r)); - goto finish; + + log_info("Trying to load rescue target..."); + if ((r = manager_load_unit(m, SPECIAL_RESCUE_TARGET, &target)) < 0) { + log_error("Failed to load rescue target: %s", strerror(-r)); + goto finish; + } } if (action == ACTION_TEST) {