} else if (home) {
if (asprintf(&data_home, "%s/.local/share/systemd/session", home) < 0)
goto fail;
+
+ /* There is really no need for two unit dirs in $HOME,
+ * except to be fully compliant with the XDG spec. We
+ * now try to link the two dirs, so that we can
+ * minimize disk seeks a little. Further down we'll
+ * then filter out this link, if it is actually is
+ * one. */
+
+ mkdir_parents(data_home, 0777);
+ symlink("../../../.config/systemd/session", data_home);
}
if ((e = getenv("XDG_DATA_DIRS")))
if (!(m = new0(Manager, 1)))
return -ENOMEM;
- m->boot_timestamp = now(CLOCK_REALTIME);
+ timestamp_get(&m->startup_timestamp);
m->running_as = running_as;
m->confirm_spawn = confirm_spawn;
if (!manager_utmp_good(m))
return;
- if ((r = utmp_put_reboot(m->boot_timestamp)) < 0) {
+ if ((r = utmp_put_reboot(m->startup_timestamp.realtime)) < 0) {
if (r != -ENOENT && r != -EROFS)
log_warning("Failed to write utmp/wtmp: %s", strerror(-r));