Slackware 및 elogind: 고급 사용자를 위해 일시 ​​중지 및 최대 절전 모드를 활성화하는 방법은 무엇입니까?

Slackware 및 elogind: 고급 사용자를 위해 일시 ​​중지 및 최대 절전 모드를 활성화하는 방법은 무엇입니까?

현재 Slackware에서 elogind를 사용하고 있으며 터미널에서 sudo를 사용해서만 절전 모드 및 최대 절전 모드를 사용할 수 있습니다. 오래된 pm-utils를 사용하여 init 3 && init 4를 사용하면 사용자로 최대 절전 모드를 설정할 수 있도록 10-enable-suspens.rules를 편집했습니다. 이제 다음 단계를 수행했습니다.

a) 두 개의 폴킷 규칙을 복사합니다.

cp /usr/share/polkit-1/rules.d/10-enable-* /etc/polkit-1/rules.d/

b) 내 사용자를 전원 그룹에 추가했습니다.

usermod -aG power myuser

c) logind.conf에서 다음 옵션을 활성화했습니다.

grep -v ^# /etc/elogind/logind.conf

[Login]
HandlePowerKey=poweroff
HandleHibernateKey=hibernate
HandleLidSwitch=hibernate

[Sleep]
AllowSuspend=yes
AllowHibernation=yes
AllowSuspendThenHibernate=yes
AllowHybridSleep=yes

d) 시스템을 다시 시작합니다

reboot

xfce4-power-manager에서는 최대 절전 모드나 절전 모드를 사용할 수 없습니다.

나는 또한 cli에서 시도했다

$ loginctl hibernate
$ echo $?
1

답변1

해결책을 찾으세요.

a) 밝기용, 일시 정지용, 최대 절전용으로 각각 하나씩 3개의 파일을 만들었습니다.

/etc/polkit-1/rules.d/88-suspend.rules
/etc/polkit-1/rules.d/88-hibernate.rules
/etc/polkit-1/rules.d/89-backlight.rules

b) 파일 내용: 밝기를 줄이고 OS를 일시 중지하고 최대 절전 모드로 전환할 수 있는 가능성을 그룹 전원에 할당했습니다. 물론 사용자는 그룹 전원(보조 또는 기본)에 있어야 합니다.

cat /etc/polkit-1/rules.d/88-hibernate.rules
polkit.addRule(function(action, subject) {
    if (action.id == "org.freedesktop.login1.hibernate" &&
        subject.isInGroup("power")) {
        return polkit.Result.YES;
    }
});


cat /etc/polkit-1/rules.d/88-suspend.rules
polkit.addRule(function(action, subject) {
    if (action.id == "org.freedesktop.login1.suspend" &&
        subject.isInGroup("power")) {
        return polkit.Result.YES;
    }
});


cat /etc/polkit-1/rules.d/89-blacklight.rules
polkit.addRule(function(action, subject) {
    if (action.id == "org.xfce.power.backlight-helper" &&
        subject.isInGroup("power")) {
        return polkit.Result.YES;
    }
});

c) 전원 관리자를 다시 시작합니다.

xfce4-power-manager --restart

xfce4 gui 및 loginctl 명령줄에서 테스트되었으며 정상적으로 작동합니다.

관련 정보