summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2010-08-14 19:14:52 +0200
committerLennart Poettering <lennart@poettering.net>2010-08-14 19:14:52 +0200
commitd90e1a301d61c3808ac5c0aa3093b2ec913e406b (patch)
tree482d7493378ea2ba5a35b2ae789fe57194709caf
parent36c32ba297a5296227902cef15730a0e55fec8e7 (diff)
systemctl: skip writing of utmp if we booted using systemd, under the assumption that systemd-update-utmp is used
-rw-r--r--fixme2
-rw-r--r--src/fdset.c1
-rw-r--r--src/systemctl.c7
3 files changed, 6 insertions, 4 deletions
diff --git a/fixme b/fixme
index 26a9787f5c..e9acede730 100644
--- a/fixme
+++ b/fixme
@@ -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();