]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
core: publish shutdown timestamps via varlink
authorLuca Boccassi <luca.boccassi@gmail.com>
Fri, 19 Jun 2026 22:55:39 +0000 (23:55 +0100)
committerLuca Boccassi <luca.boccassi@gmail.com>
Tue, 30 Jun 2026 09:21:18 +0000 (10:21 +0100)
src/core/varlink-manager.c
src/shared/varlink-io.systemd.Manager.c

index f63d2a2e8f3db99edba75557f3cd09e648188ef5..b48d21247525ba4f26fa99f88295b0151d848338 100644 (file)
@@ -170,6 +170,12 @@ static int manager_runtime_build_json(sd_json_variant **ret, const char *name, v
                 JSON_BUILD_PAIR_DUAL_TIMESTAMP_NON_NULL("InitRDTimestamp", &m->timestamps[MANAGER_TIMESTAMP_INITRD]),
                 JSON_BUILD_PAIR_DUAL_TIMESTAMP_NON_NULL("UserspaceTimestamp", &m->timestamps[MANAGER_TIMESTAMP_USERSPACE]),
                 JSON_BUILD_PAIR_DUAL_TIMESTAMP_NON_NULL("FinishTimestamp", &m->timestamps[MANAGER_TIMESTAMP_FINISH]),
+                JSON_BUILD_PAIR_DUAL_TIMESTAMP_NON_NULL("ShutdownStartTimestamp", &m->timestamps[MANAGER_TIMESTAMP_SHUTDOWN_START]),
+                JSON_BUILD_PAIR_DUAL_TIMESTAMP_NON_NULL("ShutdownFinishTimestamp", &m->timestamps[MANAGER_TIMESTAMP_SHUTDOWN_FINISH]),
+                JSON_BUILD_PAIR_DUAL_TIMESTAMP_NON_NULL("PreviousShutdownStartTimestamp", &m->timestamps[MANAGER_TIMESTAMP_PREVIOUS_SHUTDOWN_START]),
+                JSON_BUILD_PAIR_DUAL_TIMESTAMP_NON_NULL("PreviousShutdownFinishTimestamp", &m->timestamps[MANAGER_TIMESTAMP_PREVIOUS_SHUTDOWN_FINISH]),
+                JSON_BUILD_PAIR_DUAL_TIMESTAMP_NON_NULL("PreviousShutdownLateStartTimestamp", &m->timestamps[MANAGER_TIMESTAMP_PREVIOUS_SHUTDOWN_LATE_START]),
+                JSON_BUILD_PAIR_DUAL_TIMESTAMP_NON_NULL("PreviousShutdownLateFinishTimestamp", &m->timestamps[MANAGER_TIMESTAMP_PREVIOUS_SHUTDOWN_LATE_FINISH]),
                 JSON_BUILD_PAIR_DUAL_TIMESTAMP_NON_NULL("SecurityStartTimestamp", &m->timestamps[MANAGER_TIMESTAMP_SECURITY_START]),
                 JSON_BUILD_PAIR_DUAL_TIMESTAMP_NON_NULL("SecurityFinishTimestamp", &m->timestamps[MANAGER_TIMESTAMP_SECURITY_FINISH]),
                 JSON_BUILD_PAIR_DUAL_TIMESTAMP_NON_NULL("GeneratorsStartTimestamp", &m->timestamps[MANAGER_TIMESTAMP_GENERATORS_START]),
index 9331a2b1aee62c598f3d1737c467ded6d8e70558..7b0224323fb7496a21611a92a10399681e0ec2aa 100644 (file)
@@ -141,6 +141,18 @@ static SD_VARLINK_DEFINE_STRUCT_TYPE(
                 SD_VARLINK_DEFINE_FIELD_BY_TYPE(UserspaceTimestamp, Timestamp, SD_VARLINK_NULLABLE),
                 SD_VARLINK_FIELD_COMMENT("Timestamp when the system finished booting up"),
                 SD_VARLINK_DEFINE_FIELD_BY_TYPE(FinishTimestamp, Timestamp, SD_VARLINK_NULLABLE),
+                SD_VARLINK_FIELD_COMMENT("Timestamp when shutdown began, i.e. when units started to be stopped"),
+                SD_VARLINK_DEFINE_FIELD_BY_TYPE(ShutdownStartTimestamp, Timestamp, SD_VARLINK_NULLABLE),
+                SD_VARLINK_FIELD_COMMENT("Timestamp when all units finished stopping during shutdown"),
+                SD_VARLINK_DEFINE_FIELD_BY_TYPE(ShutdownFinishTimestamp, Timestamp, SD_VARLINK_NULLABLE),
+                SD_VARLINK_FIELD_COMMENT("Timestamp when the previous boot began stopping units, restored across a kexec-based live update"),
+                SD_VARLINK_DEFINE_FIELD_BY_TYPE(PreviousShutdownStartTimestamp, Timestamp, SD_VARLINK_NULLABLE),
+                SD_VARLINK_FIELD_COMMENT("Timestamp when the previous boot finished stopping units, restored across a kexec-based live update"),
+                SD_VARLINK_DEFINE_FIELD_BY_TYPE(PreviousShutdownFinishTimestamp, Timestamp, SD_VARLINK_NULLABLE),
+                SD_VARLINK_FIELD_COMMENT("Timestamp when systemd-shutdown began execution during the previous boot, restored across a kexec-based live update"),
+                SD_VARLINK_DEFINE_FIELD_BY_TYPE(PreviousShutdownLateStartTimestamp, Timestamp, SD_VARLINK_NULLABLE),
+                SD_VARLINK_FIELD_COMMENT("Timestamp when systemd-shutdown was about to kexec into the current kernel, restored across a kexec-based live update"),
+                SD_VARLINK_DEFINE_FIELD_BY_TYPE(PreviousShutdownLateFinishTimestamp, Timestamp, SD_VARLINK_NULLABLE),
                 SD_VARLINK_FIELD_COMMENT("Timestamp when the manager started uploading security policies to the kernel"),
                 SD_VARLINK_DEFINE_FIELD_BY_TYPE(SecurityStartTimestamp, Timestamp, SD_VARLINK_NULLABLE),
                 SD_VARLINK_FIELD_COMMENT("Timestamp when the manager finished uploading security policies to the kernel"),