다양한 출처를 바탕으로 내가 함께 뭉친다 ~/.config/systemd/user/screenlock.service
.
[Unit]
Description=Lock X session
Before=sleep.target
[Service]
Environment=DISPLAY=:0
ExecStart=/usr/bin/xautolock -locknow
[Install]
WantedBy=sleep.target
을 사용하여 활성화했습니다 systemctl --user enable screenlock.service
. 그러나 재부팅, 로그인, 일시 중지 및 다시 시작 ( systemctl suspend
뚜껑을 닫은 상태로 테스트 ) 한 후 화면이 잠기지 않고journalctl --user-unit screenlock.service
. 내가 무엇을 잘못하고 있지?
실행 DISPLAY=:0 /usr/bin/xautolock -locknow
하면 예상대로 화면이 잠 깁니다.
$ systemctl --version
systemd 215
+PAM -AUDIT -SELINUX -IMA -SYSVINIT +LIBCRYPTSETUP +GCRYPT +ACL +XZ +SECCOMP -APPARMOR
$ awesome --version
awesome v3.5.5 (Kansas City Shuffle)
• Build: Apr 11 2014 09:36:33 for x86_64 by gcc version 4.8.2 (nobody@)
• Compiled against Lua 5.2.3 (running with Lua 5.2)
• D-Bus support: ✔
$ slim -v
slim version 1.3.6
내가 실행하면 systemctl --user start screenlock.service
즉시 화면 잠금을 나는에 로그 메시지가 journalctl --user-unit screenlock.service
너무 ExecStart
명확하게 맞습니다.
xautolock -locker slock &
동일한 파일로 시스템 서비스를 만들면 작동합니다 (즉, slock
재개 할 때 활성화 됨).
# ln -s "${HOME}/.config/systemd/user/screenlock.service" /usr/lib/systemd/system/screenlock.service
# systemctl enable screenlock.service
$ systemctl suspend
하지만 $HOME
여러 가지 이유로 외부 에 사용자 별 파일을 추가하고 싶지 않습니다 .
sleep.target
시스템 서비스에만 해당됩니다. 그 이유는 sleep.target
잠에들 때 자동으로 활성화되는 마법 표적이 아니기 때문입니다 . 이 것을 그냥 일반 대상의 풋 물론 '사용자 인스턴스 그래서 해당이되지 않습니다 - 잠 시스템. (불행히도 '사용자'인스턴스는 현재 시스템 전체 서비스에 의존 할 방법이 없습니다.)
(그리고 전체 "$ DISPLAY 하드 코딩"사업이 있습니다. 다중 사용자 / 다중 사용자 Unix를 기반으로하는 OS에서 세션 매개 변수를 하드 코딩 할 때마다 루트가 새끼 고양이를 죽입니다.)
따라서이를 수행하는 두 가지 좋은 방법이 있습니다 (두 번째 방법을 제안합니다).
시스템이 절전 모드로 전환 될 때 systemd-logind가 "모든 세션 잠금"신호를 브로드 캐스트하도록하는 시스템 서비스 (또는 systemd-sleep (8) 후크)를 만듭니다.
ExecStart=/usr/bin/loginctl lock-sessions
그런 다음 X11 세션 (예 : ~ / .xinitrc에서) 내에서 신호에 반응하는 무언가를 실행합니다.
systemd-lock-handler slock &
xss- lock-수면 슬록 무시 &
(GNOME, Cinnamon, KDE, Enlightenment는 이미 기본적으로 지원합니다.)
X11 세션 내에서 , 예를 들어 systemd-logind의 "억제제"에 연결하여 잠자기 상태가되는 시스템 을 직접 감시 하는 무언가를 실행하십시오 .
앞서 언급 한 xss-lock은 명시적인 "lock all"신호 없이도 실제로 정확히 수행하므로 실행하는 것으로 충분합니다.
xss-lock slock &
slock
systemd-logind가 컴퓨터를 일시 중지 할 준비를하는 즉시 실행 됩니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다