chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
target: introduce target_get_runlevel() for distilling SysV compatible runlevel infor...
[elogind.git]
/
main.c
diff --git
a/main.c
b/main.c
index fb5ba6aef25e187a4649a0c63c93cfb39572d997..b4fbdb58f5243027eef64ad5f5868b3ead27706c 100644
(file)
--- a/
main.c
+++ b/
main.c
@@
-70,7
+70,7
@@
static int parse_proc_cmdline_word(const char *word) {
};
if (startswith(word, "systemd.default="))
};
if (startswith(word, "systemd.default="))
- return set_default_unit(word + 1
5
);
+ return set_default_unit(word + 1
6
);
else if (startswith(word, "systemd.log_target=")) {
else if (startswith(word, "systemd.log_target=")) {
@@
-212,11
+212,6
@@
static int parse_argv(int argc, char *argv[]) {
return -EINVAL;
}
return -EINVAL;
}
- if (optind < argc) {
- log_error("Too many arguments.");
- return -EINVAL;
- }
-
return 0;
}
return 0;
}
@@
-227,7
+222,7
@@
static int help(void) {
" --default=UNIT Set default unit\n"
" --log-level=LEVEL Set log level\n"
" --log-target=TARGET Set log target (console, syslog, kmsg)\n"
" --default=UNIT Set default unit\n"
" --log-level=LEVEL Set log level\n"
" --log-target=TARGET Set log target (console, syslog, kmsg)\n"
- " --running-as=AS Set running as (init, system, sess
t
ion)\n"
+ " --running-as=AS Set running as (init, system, session)\n"
" --test Determine startup sequence, dump it and exit\n",
__progname);
" --test Determine startup sequence, dump it and exit\n",
__progname);
@@
-252,7
+247,8
@@
int main(int argc, char *argv[]) {
/* Mount /proc, /sys and friends, so that /proc/cmdline and
* /proc/$PID/fd is available. */
/* Mount /proc, /sys and friends, so that /proc/cmdline and
* /proc/$PID/fd is available. */
- mount_setup();
+ if (mount_setup() < 0)
+ goto finish;
/* Reset all signal handlers. */
assert_se(reset_all_signal_handlers() == 0);
/* Reset all signal handlers. */
assert_se(reset_all_signal_handlers() == 0);
@@
-276,6
+272,9
@@
int main(int argc, char *argv[]) {
assert_se(action == ACTION_RUN || action == ACTION_TEST);
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);
/* Move out of the way, so that we won't block unmounts */
assert_se(chdir("/") == 0);
@@
-308,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));
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) {
}
if (action == ACTION_TEST) {