mirror of
https://github.com/AuxXxilium/eudev.git
synced 2024-12-22 15:03:34 +07:00
main: properly fallback to rescue.target if default.target is hosed
This commit is contained in:
parent
7f17ef2201
commit
1c27d3f3fd
4
fixme
4
fixme
@ -1,9 +1,5 @@
|
||||
* systemd.log_level=debug should overwrite 'quiet' ?
|
||||
|
||||
* implicit 'default.target' ?
|
||||
systemd currently fails to boot when the link is dangling, like
|
||||
after the move of the runlevel targets from /etc to /lib
|
||||
|
||||
* dot output for --test showing the 'initial transaction'
|
||||
|
||||
* check 'disable'
|
||||
|
@ -851,7 +851,6 @@ fail:
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
Manager *m = NULL;
|
||||
Unit *target = NULL;
|
||||
int r, retval = 1;
|
||||
FDSet *fds = NULL;
|
||||
bool reexecute = false;
|
||||
@ -1004,6 +1003,7 @@ int main(int argc, char *argv[]) {
|
||||
serialization = NULL;
|
||||
} else {
|
||||
DBusError error;
|
||||
Unit *target = NULL;
|
||||
|
||||
dbus_error_init(&error);
|
||||
|
||||
@ -1012,12 +1012,19 @@ int main(int argc, char *argv[]) {
|
||||
if ((r = manager_load_unit(m, arg_default_unit, NULL, &error, &target)) < 0) {
|
||||
log_error("Failed to load default target: %s", bus_error(&error, r));
|
||||
dbus_error_free(&error);
|
||||
} else if (target->meta.load_state != UNIT_LOADED)
|
||||
log_error("Failed to load default target: %s", strerror(-target->meta.load_error));
|
||||
|
||||
if (!target || target->meta.load_state != UNIT_LOADED) {
|
||||
log_info("Trying to load rescue target...");
|
||||
|
||||
if ((r = manager_load_unit(m, SPECIAL_RESCUE_TARGET, NULL, &error, &target)) < 0) {
|
||||
log_error("Failed to load rescue target: %s", bus_error(&error, r));
|
||||
dbus_error_free(&error);
|
||||
goto finish;
|
||||
} else if (target->meta.load_state != UNIT_LOADED) {
|
||||
log_error("Failed to load rescue target: %s", strerror(-target->meta.load_error));
|
||||
goto finish;
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user