diff options
author | Lennart Poettering <lennart@poettering.net> | 2010-08-14 19:14:52 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2010-08-14 19:14:52 +0200 |
commit | d90e1a301d61c3808ac5c0aa3093b2ec913e406b (patch) | |
tree | 482d7493378ea2ba5a35b2ae789fe57194709caf | |
parent | 36c32ba297a5296227902cef15730a0e55fec8e7 (diff) |
systemctl: skip writing of utmp if we booted using systemd, under the assumption that systemd-update-utmp is used
-rw-r--r-- | fixme | 2 | ||||
-rw-r--r-- | src/fdset.c | 1 | ||||
-rw-r--r-- | src/systemctl.c | 7 |
3 files changed, 6 insertions, 4 deletions
@@ -1,7 +1,7 @@ * dot output for --test showing the 'initial transaction' * check 'disable' - <Viking-Ice> "Warning: Unit file changed in disk, 'systemctl --system daemon-reload' recomended + <Viking-Ice> "Warning: Unit file changed in disk, 'systemctl --system daemon-reload' recommended <kay> when does it do that? <Viking-Ice> if you disable the service diff --git a/src/fdset.c b/src/fdset.c index b6d5286f82..ad7cd2949c 100644 --- a/src/fdset.c +++ b/src/fdset.c @@ -144,7 +144,6 @@ finish: set_free(MAKE_SET(s)); return r; - } int fdset_cloexec(FDSet *fds, bool b) { diff --git a/src/systemctl.c b/src/systemctl.c index 9a85383dba..167c6a5b7f 100644 --- a/src/systemctl.c +++ b/src/systemctl.c @@ -4680,9 +4680,12 @@ static int halt_main(DBusConnection *bus) { if (!arg_dry && !arg_immediate) return start_with_fallback(bus); - if (!arg_no_wtmp) - if ((r = utmp_put_shutdown(0)) < 0) + if (!arg_no_wtmp) { + if (sd_booted() > 0) + log_debug("Not writing utmp record, assuming that systemd-update-utmp is used."); + else if ((r = utmp_put_shutdown(0)) < 0) log_warning("Failed to write utmp record: %s", strerror(-r)); + } if (!arg_no_sync) sync(); |