관련된 문서시스템화된 억제기 잠금 장치그리고남자 systemd 억제무언가(예: 이벤트 handle-lid-switch
)를 차단하기 때문에 특정 방식으로 프로세스를 시작하는 방법에 대한 자세한 설명입니다.
그러한 "잠금"/"금지"/"차단"을 제거할 수 있는 방법을 찾을 수 없습니다.
질문:systemd-inhibit
메시지 등을 통해 잠금을 해제 할 수 있는 방법이 있나요 dbus
?
배경:소음기 잠금장치를 제거하려면 무엇이 필요합니까**
systemd-logind
내 노트북에는 덮개가 닫힐 때 노트북을 모니터링하고 일시 중지하는 노트북 덮개 닫기 스위치가 있습니다. 기능은 " close-lid -> suspend
"입니다.
노트북을 도킹 스테이션에 놓은 후 사용자가 더 큰 화면을 사용할 수 있도록 Gnome의 gsd-power를 임의로 사용할 수 있습니다(그리고 잘못Gnome에는 이를 변경할 수 있는 설정이 없습니다.) " " 기능이 close-lid -> suspend
작동하지 않도록 억제 잠금을 만들기로 결정했습니다.
억제기 잠금 장치를 제거하는 방법을 알면 Gnome의 gnome-setting-deamon 전원으로 인해 잘못된 설정을 수정할 수 있습니다 gsd-power
. systemctl suspend
수동으로 일시 중지를 호출하는 데 실제로 문제가 없기 때문에 Gnome의 설정이 잘못되었습니다 .
제거하려는 억제제 잠금은 다음과 같습니다 systemd-inhibit --list
.
Who: alex (UID 1000/alex, PID 4248/gsd-power)
What: handle-lid-switch
Why: Multiple displays attached
Mode: block
답변1
Inhibit()는 잠금을 포함하는 파일 설명자인 값을 반환합니다. 파일 설명자(및 모든 복사본)가 닫히면 잠금이 자동으로 해제됩니다. 잠금을 획득하는 동안 클라이언트가 종료되면 커널은 자동으로 파일 설명자를 닫아 잠금이 자동으로 해제됩니다. 이런 방식으로 수행된 지연된 잠금은 prepareForShutdown(true)이 수신되자마자(아래 참조) 해제되어야 하지만, 물론 애플리케이션이 처음에 지연된 작업을 원했던 작업을 수행한 후에만 가능합니다.
kill 을 원하지 않을 수도 있으므로 gsd-power
잠금을 캡슐화하는 파일 설명자를 닫아야 합니다. 에 의해 개최될 가능성이 높습니다 gsd-power
. 다른 프로세스가 파일 설명자 중 하나를 강제로 닫는 것은 일반적인 일이 아니며 gsd-power
.Stack Overflow에서 이 질문을 읽어보세요.
gsd-power
대신 DBus 작업을 수행하기 위한 권한을 제거해 볼 수 있습니다 org.freedesktop.login1.inhibit-handle-lid-switch
. 이것매뉴얼 페이지dbus-daemon(1)
도움이 될 수도 있습니다.