diff options
author | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2013-07-15 21:34:57 -0400 |
---|---|---|
committer | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2013-07-15 21:34:57 -0400 |
commit | 31a7eb86f18b0466681d6fbe80c148f96c551c80 (patch) | |
tree | 9ba2b0745cbf6a90d32b6c918979a52a8e1260d1 /src/core/manager.h | |
parent | 77a9e8de6572db6ba5ca49023937b67fc835f356 (diff) |
systemd: do not output status messages once gettys are running
Make Type=idle communication bidirectional: when bootup is finished,
the manager, as before, signals idling Type=idle jobs to continue.
However, if the boot takes too long, idling jobs signal the manager
that they have had enough, wait a tiny bit more, and continue, taking
ownership of the console. The manager, when signalled that Type=idle
jobs are done, makes a note and will not write to the console anymore.
This is a cosmetic issue, but quite noticable, so let's just fix it.
Based on Harald Hoyer's patch.
https://bugs.freedesktop.org/show_bug.cgi?id=54247
http://unix.stackexchange.com/questions/51805/systemd-messages-after-starting-login/
Diffstat (limited to 'src/core/manager.h')
-rw-r--r-- | src/core/manager.h | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/core/manager.h b/src/core/manager.h index 6d5241497d..bd068ac3c9 100644 --- a/src/core/manager.h +++ b/src/core/manager.h @@ -63,7 +63,8 @@ enum WatchType { WATCH_DBUS_WATCH, WATCH_DBUS_TIMEOUT, WATCH_TIME_CHANGE, - WATCH_JOBS_IN_PROGRESS + WATCH_JOBS_IN_PROGRESS, + WATCH_IDLE_PIPE, }; struct Watch { @@ -135,6 +136,7 @@ struct Manager { Watch signal_watch; Watch time_change_watch; Watch jobs_in_progress_watch; + Watch idle_pipe_watch; int epoll_fd; @@ -227,6 +229,7 @@ struct Manager { bool show_status; bool confirm_spawn; + bool no_console_output; ExecOutput default_std_output, default_std_error; @@ -244,7 +247,7 @@ struct Manager { unsigned jobs_in_progress_iteration; /* Type=idle pipes */ - int idle_pipe[2]; + int idle_pipe[4]; char *switch_root; char *switch_root_init; |