1
0
mirror of https://github.com/systemd/systemd.git synced 2024-11-02 10:51:20 +03:00

Merge pull request #10814 from poettering/logind-suspend-fallback

if we need to hibernate/suspend-then-hibernate/hybrid-sleep due to keypress/lid switch but can't, fallback to regular suspend
This commit is contained in:
Lennart Poettering 2018-11-19 11:05:48 +01:00 committed by GitHub
commit 431957c959
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -108,6 +108,14 @@ int manager_handle_action(
else
supported = true;
if (!supported && IN_SET(handle, HANDLE_HIBERNATE, HANDLE_HYBRID_SLEEP, HANDLE_SUSPEND_THEN_HIBERNATE)) {
supported = can_sleep("suspend") > 0;
if (supported) {
log_notice("Operation '%s' requested but not supported, using regular suspend instead.", handle_action_to_string(handle));
handle = HANDLE_SUSPEND;
}
}
if (!supported) {
log_warning("Requested operation not supported, ignoring.");
return -EOPNOTSUPP;
@ -129,7 +137,7 @@ int manager_handle_action(
manager_is_inhibited(m, inhibit_operation, INHIBIT_BLOCK, NULL, false, false, 0, &offending)) {
_cleanup_free_ char *comm = NULL, *u = NULL;
get_process_comm(offending->pid, &comm);
(void) get_process_comm(offending->pid, &comm);
u = uid_to_name(offending->uid);
/* If this is just a recheck of the lid switch then don't warn about anything */