잘못된 Linux 및 잠금 화면 시 중단

잘못된 Linux 및 잠금 화면 시 중단

void Linux를 사용하는 데 몇 가지 문제가 있습니다. zzz에 스크립트로 slock을 추가해 보았습니다./etc/zzz.d/suspend/slock

#!/bin/sh
slock

이상한 방식으로 작동합니다. 호출하면 zzzslock이 발생하고 비밀번호를 입력하여 잠금이 해제될 때까지 멈추지 않습니다. 스크립트를 으로 옮겼고 /etc/zzz.d/resume/slock이제 다시 시작하면 잠금 해제 화면이 잠시 깜박인 다음 화면이 잠깁니다. 좋지는 않지만 괜찮습니다.

하지만 또 다른 문제가 있습니다. 덮개를 닫으면 노트북이 정지되지만 화면은 전혀 잠기지 않습니다. 내 생각엔 이것 과 관련 이 있을 것 같아요 acpid. acpid덮개를 닫아도 노트북을 비활성화할 때 노트북이 일시 중지되지 않으므로 이는 acpid확실히 책임이 있습니다. 패치를 시도했는데 /etc/acpi/handler.sh이제 다음과 같습니다.

                close)
                        # suspend-to-ram
                        logger "LID closed, suspending..."
                        slock
                        zzz
                        ;;
                open)   logger "LID opened" ;;
                *) logger "ACPI action undefined (LID): $2";;

그리고 slock어쨌든 실행되지 않습니다. 나는 zzz그것을 제거한 handler.sh다음 뚜껑을 닫아도 아무 일도 일어나지 않습니다. 즉, 실제로 zzz존재할 때 실행되지만 zzz어떤 이유로 사용자 스크립트를 실행하지 않는다는 의미입니다. 나는 또한 두 가지를 모두 slock(예 : voidi3lockhandler.sh위키피디아제안) zzz.d/resume하지만 똑같습니다. 내가 뭔가 잘못하고 있는 걸까요, 아니면 이 동작을 일으키는 다른 문제가 있는 걸까요?

답변1

다음과 같이 문제를 해결하세요.

/etc/zzz.d/일시 중단/01

#!/bin/sh
doas -u ds xsecurelock &
sleep 2

/etc/doas.conf

permit persist :wheel
permit nopass root as ds cmd xsecurelock
permit nopass :wheel as root cmd zzz
permit nopass :wheel as root cmd ZZZ
permit nopass keepenv root as root

일시 중지 스크립트에서 루트에 대해 $DISPLAY를 정의해 볼 수 있지만 이것을 알아내기에는 너무 어리석습니다.

답변2

계속하기 전에 쉘이 slock 프로세스가 중지될 때까지 기다리기 때문에 초기 솔루션이 작동하지 않습니다. 가장 간단한(그러나 최선은 아님) 솔루션은 slock &프로세스가 계속 실행되도록 허용하는 명령을 만드는 것입니다. 그러나 이것이 장치가 정지되기 전에 slock의 실행이 완료된다는 보장은 없습니다.

xss-lock이를 수행하는 "올바른" 방법은 call slock을 사용 하고 xset명령을 사용하여 화면을 잠그는 것입니다. 이 두 가지 모두 Void 저장소에서 찾을 수 있습니다. xss-lock slockxss-lock은 잠금을 위해 slock을 사용하도록 설정됩니다.

이것~해야 한다xss-lock은 정상적인 중단 시 작동해야 하므로 추가 스크립팅 없이도 작동합니다. 그러나 보류 중인 이벤트에는 항상 버그가 있으므로 xset을 통한 추가 활성화는 나쁜 생각이 아닙니다.

예 는 다음 /etc/zzz.d/suspend/slock과 같습니다

#!/bin/sh
xset s activate

유사한 스크립트를 해당 "복구" 파일에 배치할 수 있지만 화면을 잠그기 전에 화면을 잠금 해제하는 문제는 여전히 발생합니다.

관련 정보