설정은 다음과 같이 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
기존 억제제가 나열됩니다.