logind: rework wall message about pending shutdown/halt/reboot/…
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Mon, 30 May 2022 10:08:41 +0000 (12:08 +0200)
committerMichael Biebl <biebl@debian.org>
Fri, 14 Oct 2022 14:34:00 +0000 (15:34 +0100)
Those messages simply *feel* dated: "The system is going for suspend NOW!".
Let's say "The system will suspend|power off|hibernate|… now!" instead.
The exclamation mark is enough to show the urgency.

Also, the "the" seemed out of place. We're not talking about a specific reboot.

(cherry picked from commit 3dbb9bc5eb29b7f3cfcbe61c05922c5360be19ec)

Gbp-Pq: Name logind-rework-wall-message-about-pending-shutdown-halt-re.patch

src/login/logind-action.c
src/login/logind-action.h
src/login/logind-dbus.c
src/login/logind-utmp.c
src/login/logind.c
test/test-shutdown.py

index 6a873009bc093d8982a40fe6cbc526913546f42c..55b34e5eeaac5929643d3983f545447830494d3b 100644 (file)
@@ -251,6 +251,22 @@ int manager_handle_action(
         return 1;
 }
 
+static const char* const handle_action_verb_table[_HANDLE_ACTION_MAX] = {
+        [HANDLE_IGNORE]                 = "do nothing",
+        [HANDLE_POWEROFF]               = "power off",
+        [HANDLE_REBOOT]                 = "reboot",
+        [HANDLE_HALT]                   = "halt",
+        [HANDLE_KEXEC]                  = "kexec",
+        [HANDLE_SUSPEND]                = "suspend",
+        [HANDLE_HIBERNATE]              = "hibernate",
+        [HANDLE_HYBRID_SLEEP]           = "enter hybrid sleep",
+        [HANDLE_SUSPEND_THEN_HIBERNATE] = "suspend and later hibernate",
+        [HANDLE_FACTORY_RESET]          = "perform a factory reset",
+        [HANDLE_LOCK]                   = "be locked",
+};
+
+DEFINE_STRING_TABLE_LOOKUP_TO_STRING(handle_action_verb, HandleAction);
+
 static const char* const handle_action_table[_HANDLE_ACTION_MAX] = {
         [HANDLE_IGNORE] = "ignore",
         [HANDLE_POWEROFF] = "poweroff",
index c891787e6cdcf8ac0f00dc4aace2c7cedf03b439..9a01af1690881a68b66614c292de212ef9bf629c 100644 (file)
@@ -49,6 +49,8 @@ int manager_handle_action(
                 bool ignore_inhibited,
                 bool is_edge);
 
+const char* handle_action_verb_to_string(HandleAction h) _const_;
+
 const char* handle_action_to_string(HandleAction h) _const_;
 HandleAction handle_action_from_string(const char *s) _pure_;
 
index 6b77a04df1ca679798274dcb69983f193e722c36..8fd46e1a4b87bc383e8bd6107739c788a7a0ff75 100644 (file)
@@ -2355,7 +2355,7 @@ static int method_cancel_scheduled_shutdown(sd_bus_message *message, void *userd
                 }
 
                 username = uid_to_name(uid);
-                utmp_wall("The system shutdown has been cancelled",
+                utmp_wall("System shutdown has been cancelled",
                           username, tty, logind_wall_tty_filter, m);
         }
 
index 7d761a0d67488c09106e5a0d53fe8c4772b1f257..848d96c20d3db1748e64e586702876e5de25ac26 100644 (file)
@@ -78,11 +78,11 @@ static int warn_wall(Manager *m, usec_t n) {
 
         left = m->scheduled_shutdown_timeout > n;
 
-        r = asprintf(&l, "%s%sThe system is going down for %s %s%s!",
+        r = asprintf(&l, "%s%sThe system will %s %s%s!",
                      strempty(m->wall_message),
                      isempty(m->wall_message) ? "" : "\n",
-                     handle_action_to_string(m->scheduled_shutdown_action->handle),
-                     left ? "at " : "NOW",
+                     handle_action_verb_to_string(m->scheduled_shutdown_action->handle),
+                     left ? "at " : "now",
                      left ? FORMAT_TIMESTAMP(m->scheduled_shutdown_timeout) : "");
         if (r < 0) {
                 log_oom();
index 0483902edd9bec52af99452c1b3dd0ea9ceeca07..aa8548054841794a4a3d8d9d2146abd8fe9c4e76 100644 (file)
@@ -972,7 +972,7 @@ static int manager_dispatch_idle_action(sd_event_source *s, uint64_t t, void *us
 
                 if (n >= since.monotonic + m->idle_action_usec &&
                     (m->idle_action_not_before_usec <= 0 || n >= m->idle_action_not_before_usec + m->idle_action_usec)) {
-                        log_info("System idle. Doing %s operation.", handle_action_to_string(m->idle_action));
+                        log_info("System idle. Will %s now.", handle_action_verb_to_string(m->idle_action));
 
                         manager_handle_action(m, 0, m->idle_action, false, false);
                         m->idle_action_not_before_usec = n;
index 1a91753b87a9f9580e7bbd7cd5c05106fc1aecfc..a9c43e30f347f7b1baef6a3de39163ac9857c309 100755 (executable)
@@ -53,7 +53,7 @@ def run(args):
         console.send('0')
         logger.info("verify broadcast message")
         console.expect('Broadcast message from root@H on %s' % pty, 2)
-        console.expect('The system is going down for reboot at %s' % date, 2)
+        console.expect('The system will reboot at %s' % date, 2)
 
         logger.info("check show output")
         console.sendline('shutdown --show')
@@ -63,13 +63,13 @@ def run(args):
         console.sendline('shutdown -c')
         console.sendcontrol('a')
         console.send('1')
-        console.expect('The system shutdown has been cancelled', 2)
+        console.expect('System shutdown has been cancelled', 2)
 
         logger.info("call for reboot")
         console.sendline('sleep 10; shutdown -r now')
         console.sendcontrol('a')
         console.send('0')
-        console.expect("The system is going down for reboot NOW!", 12)
+        console.expect("The system will reboot now!", 12)
 
         logger.info("waiting for reboot")