chiark / gitweb /
journal: generate structured journal messages for a number of events
[elogind.git] / src / sleep / sleep.c
index 7062dc242ff0bb1b2b7e6c56d28ffd6bab9b158c..71c7518a3b4efaea819edb9e8b5c67bc811a5aa5 100644 (file)
@@ -25,6 +25,8 @@
 
 #include "log.h"
 #include "util.h"
+#include "systemd/sd-id128.h"
+#include "systemd/sd-messages.h"
 
 int main(int argc, char *argv[]) {
         const char *verb;
@@ -63,7 +65,20 @@ int main(int argc, char *argv[]) {
         arguments[1] = (char*) "pre";
         arguments[2] = argv[1];
         arguments[3] = NULL;
-        execute_directory(SYSTEMD_SLEEP_BINARY_PATH, NULL, arguments);
+        execute_directory(SYSTEM_SLEEP_PATH, NULL, arguments);
+
+        if (streq(argv[1], "suspend"))
+                log_struct(LOG_INFO,
+                           "MESSAGE_ID=" SD_ID128_FORMAT_STR, SD_ID128_FORMAT_VAL(SD_MESSAGE_SLEEP_START),
+                           "MESSAGE=Suspending system...",
+                           "SLEEP=suspend",
+                           NULL);
+        else
+                log_struct(LOG_INFO,
+                           "MESSAGE_ID=" SD_ID128_FORMAT_STR, SD_ID128_FORMAT_VAL(SD_MESSAGE_SLEEP_START),
+                           "MESSAGE=Hibernating system...",
+                           "SLEEP=hibernate",
+                           NULL);
 
         fputs(verb, f);
         fputc('\n', f);
@@ -71,8 +86,21 @@ int main(int argc, char *argv[]) {
 
         r = ferror(f) ? -errno : 0;
 
+        if (streq(argv[1], "suspend"))
+                log_struct(LOG_INFO,
+                           "MESSAGE_ID=" SD_ID128_FORMAT_STR, SD_ID128_FORMAT_VAL(SD_MESSAGE_SLEEP_STOP),
+                           "MESSAGE=System resumed.",
+                           "SLEEP=suspend",
+                           NULL);
+        else
+                log_struct(LOG_INFO,
+                           "MESSAGE_ID=" SD_ID128_FORMAT_STR, SD_ID128_FORMAT_VAL(SD_MESSAGE_SLEEP_STOP),
+                           "MESSAGE=System thawed.",
+                           "SLEEP=hibernate",
+                           NULL);
+
         arguments[1] = (char*) "post";
-        execute_directory(SYSTEMD_SLEEP_BINARY_PATH, NULL, arguments);
+        execute_directory(SYSTEM_SLEEP_PATH, NULL, arguments);
 
         fclose(f);