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