summaryrefslogtreecommitdiff
path: root/src/main.c
diff options
context:
space:
mode:
authorMichal Schmidt <mschmidt@redhat.com>2012-02-02 12:39:33 +0100
committerMichal Schmidt <mschmidt@redhat.com>2012-02-02 13:39:15 +0100
commitbacbccb78cec45c4759ef4291375605284248eb0 (patch)
treeaf02ed86ec4368b43f3cac697db515f7774f7fe8 /src/main.c
parent9f056f4087b9b0c88decc33c32078f8503efa46e (diff)
manager: tell correctly if the manager is booting
The assumption that the initial job is the job with id==1 is incorrect. Some jobs may be enqueued before the job that starts the default unit as in this example: -.mount changed dead -> mounted Trying to enqueue job quotacheck.service/start/fail Installed new job quotacheck.service/start as 1 Installed new job systemd-stdout-syslog-bridge.socket/start as 2 Enqueued job quotacheck.service/start as 1 Trying to enqueue job quotaon.service/start/fail Installed new job quotaon.service/start as 5 Enqueued job quotaon.service/start as 5 Activating default unit: default.target Trying to enqueue job graphical.target/start/replace This fixes a bug where displaying of boot status messages was turned off too early.
Diffstat (limited to 'src/main.c')
-rw-r--r--src/main.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/main.c b/src/main.c
index 738db6c26..18cc74a2e 100644
--- a/src/main.c
+++ b/src/main.c
@@ -1404,6 +1404,7 @@ int main(int argc, char *argv[]) {
} else {
DBusError error;
Unit *target = NULL;
+ Job *default_unit_job;
dbus_error_init(&error);
@@ -1440,11 +1441,13 @@ int main(int argc, char *argv[]) {
manager_dump_units(m, stdout, "\t");
}
- if ((r = manager_add_job(m, JOB_START, target, JOB_REPLACE, false, &error, NULL)) < 0) {
+ r = manager_add_job(m, JOB_START, target, JOB_REPLACE, false, &error, &default_unit_job);
+ if (r < 0) {
log_error("Failed to start default target: %s", bus_error(&error, r));
dbus_error_free(&error);
goto finish;
}
+ m->default_unit_job_id = default_unit_job->id;
after_startup = now(CLOCK_MONOTONIC);
log_full(arg_action == ACTION_TEST ? LOG_INFO : LOG_DEBUG,