chiark / gitweb /
loginctl: don't show [UACCESS] info in device tree
[elogind.git] / src / login / logind-action.c
index e1517d6ac2573d28e045c143eb8538dd4b5d2083..a796ebe9eca24ab2842f4c564eebac8d0dffd517 100644 (file)
@@ -56,10 +56,15 @@ int manager_handle_action(
         DBusError error;
         int r;
         InhibitWhat inhibit_operation;
-        bool supported = true;
+        bool supported;
 
         assert(m);
 
+        if (m->action_job || m->delayed_unit) {
+                log_debug("Action already in progress, ignoring.");
+                return -EALREADY;
+        }
+
         /* If the key handling is turned off, don't do anything */
         if (handle == HANDLE_IGNORE) {
                 log_debug("Refusing operation, as it is turned off.");
@@ -74,6 +79,8 @@ int manager_handle_action(
                 supported = can_sleep("disk") > 0 && can_sleep_disk("suspend") > 0;
         else if (handle == HANDLE_KEXEC)
                 supported = access("/sbin/kexec", X_OK) >= 0;
+        else
+                supported = true;
 
         if (!supported) {
                 log_warning("Requested operation not supported, ignoring.");