OS X의 명령줄에서 잠금 화면이 활성화되었는지 어떻게 알 수 있나요?

OS X의 명령줄에서 잠금 화면이 활성화되었는지 어떻게 알 수 있나요?

Mac에 로그인한 경우 정기적으로 실행하고 싶은 cron 스크립트가 있습니다. 잠금화면이 켜져 있으면 실행하고 싶지 않습니다. 잠금 화면이 활성화되었는지 명령줄/터미널에서 확인할 수 있는 방법이 있나요?

답변1

이것이 바로 제가 원했던 구현입니다. 많은 연구 끝에 나는 이 애플스크립트를 abarnert의 기여와 함께 넣었습니다.https://stackoverflow.com/questions/11505255/osx-check-if-the-screen-is-locked

set queryUserLoginState to "python -c 'import sys,Quartz; d=Quartz.CGSessionCopyCurrentDictionary(); print d'"

tell the application "SleepDisplay" to launch
set displayOff to true
delay 2
repeat while displayOff
    set loginTest to do shell script queryUserLoginState
    if loginTest does not contain "CGSSessionScreenIsLocked = 1" then
        set displayOff to false
    end if
    delay 3
end repeat

-- do stuff!

이제 화면이 잠겨 있는지 확인하기 위해 터미널 확인을 요청하신 것으로 알고 있습니다. 코드로 구현되었습니다.

여기서 지적하겠습니다.

터미널 명령의 결과인 경우:

python -c 'import sys,Quartz; d=Quartz.CGSessionCopyCurrentDictionary(); print d'

항목이 포함되어 있습니다

CGSSessionScreenIsLocked = 1

그러면 화면이 현재 잠겨 있습니다. 해당 줄이 포함되어 있지 않으면 사용자는 로그인됩니다(즉, 잠금 화면에 비밀번호가 입력되었습니다).

관련 정보