런타임에 시스템 HandleLidSwitch 설정을 변경하시겠습니까?

런타임에 시스템 HandleLidSwitch 설정을 변경하시겠습니까?

설정은 다음과 같이 HandleLidSwitch정의됩니다 /etc/systemd/logind.conf.

HandleLidSwitch=<hibernate,ignore,...>

시작 시 설정이 성공적으로 적용됩니다. 그러나 AC 상태에 따라 런타임 시 설정을 변경하고 싶습니다.

내 노트북이 충전 중인 경우 을 사용하고 HandleLidSwitch=ignore, 노트북이 배터리를 사용하는 경우 을 사용합니다 HandleLidSwitch=suspend.

현재 systemd에서 이것이 가능합니까?

답변1

로그인은억제기 잠금 장치사용자 소프트웨어가 시스템 정책을 무시할 수 있도록 하는 메커니즘입니다. 예를 들어, Gnome이 활성화되어 있는 동안 Gnome은 모든 ACPI 버튼과 스위치를 제어할 수 있습니다. 장치가 연결되어 있을 때 "핸들 커버 스위치"를 억제하고 플러그를 뽑을 때 잠금을 해제하는 데 사용할 수 있습니다.

가장 좋은 접근 방식은 DBus 바인딩이 있는 언어로 스크립트를 작성하고 logind의 방법을 사용하는 것이지만 systemd는 쉘 스크립트에서 사용할 수 있는 명령을 Inhibit()제공합니다 . systemd-inhibit하위 프로세스가 종료될 때까지 잠금을 유지하는 래퍼로 사용하기 위한 것입니다.

systemd-inhibit --what=handle-lid-switch SOME_COMMAND_HERE

PS 이것은 모두 "손잡이-뚜껑-스위치"가 차단된 데스크탑 환경을 사용하지 않는다고 가정합니다. 매개변수 없이 실행하면 systemd-inhibit기존 억제제가 나열됩니다.

관련 정보