2009-09-07 2 views
2

OS X 10.6의 새로운 Kerberos 제한 때문에 10.5에서 사용할 수 있었던 기능과 비슷한 기능을 제공하는 스크립트를 작성하고 있습니다. 본질적으로 klist 출력을 파싱하여 티켓이 만료되는지 확인하고 만료 될 때까지 표시합니다. 10 분을 넘기면 kinit를 호출하여 GUI 비밀번호 프롬프트에서 kerberos 비밀번호를 묻습니다. 티켓이 만료되면 같은 일을합니다.OS X 10.6의 화면에서 화면이 잠겼거나 화면 보호기가 활성화되어 있는지 어떻게 알 수 있습니까?

스크립트는 kinit가 다시 호출하기 전에 kinit가 실행되고 있지 않아야 여러 kinit 호출이 없으므로 스크립트가 실제로 작동 (GeekLog에서 호출되어 상태를 볼 수 있음)합니다. 문제는 오늘 아침에 스크린 잠금을 해제 할 때 시스템이 회전하는 비치 볼을주고 있다는 것입니다. 내 대본 및/또는 kinit이 무언가를하는 것으로 의심하고 있습니다. 기계는 ping을 통해 사용할 수 있었지만 그렇지 않으면 ssh 또는 AFP에 응답하지 않았습니다.

그래서 내가하고 싶은 것은 화면이 잠겨 있는지 또는 화면 보호기가 약정되었는지를 감지하는 것입니다. 이전 버전의 OS X에서는 ScreenSaverEngine이 활성 상태인지 아닌지를 확인할 수 있었지만 더 이상 문제가되지 않는 것으로 나타났습니다.

그렇다면 화면이 잠겼거나 명령 줄 도구를 사용하여 로그인했는지 어떻게 확인할 수 있습니까? 화면이 잠겨 있으면 스크립트를 종료하여 klist에 신경 쓰지 않거나 kinit를 시도합니다. 나는 그것이 오늘 아침에 경험했던 잠김을 막을 수 있기를 바라고 있습니다. 어떤 아이디어?

답변

0

호기심에서 벗어나 OS X 머신으로 ssh'ing 해보고 화면 보호기/잠금 전/후에 프로세스 목록을 비교해 보셨습니까?

그게 내가 시도하려는 것입니다.

+0

예, ps ax | awk '{print $ 5, $ 6}'를 사용하여 시도했습니다. (따라서 pid 및 실행 시간과 같은 항목은 diff가 잘못된 긍정을 유발하지 않도록합니다.) 절대 변경이 없습니다. 그래서 (화면이 잠길 때 나타나는 이전 버전의 ScreenSaverEngine과는 달리) 이것을 처리하는 기존 프로세스가 있습니다. –

4

다소 괴롭지 만 Apple 이벤트를 통해 System Events 배경 앱을 쉽게 쿼리하여 화면 보호기가 실행 중인지 확인할 수 있습니다. 예를 들면 다음과 같습니다.

$ osascript -e 'tell application "System Events"' \ 
> -e 'get running of screen saver preferences' \ 
> -e 'end tell' 
false 
$ # engage screen saver after starting next command 
$ sleep 5; osascript -e 'tell application "System Events"' -e 'get running of screen saver preferences' -e 'end tell' 
true 
$ 

자물쇠가 튀어 나오는 이유는 무엇일까요?

+0

그래, 무슨 일이 일어나고 있는지 알고 싶다. 나는 예/아니오 프롬프트 (화면이 잠겨있을 때 실행될 것임)를 수행하는 Automator 워크 플로 응용 프로그램을 만들어서 "yes"를받은 후에 kinit를 호출하기 전에 시스템을 잠급니다. 이것은 작동하지만 ... 화면 보호기가 실행 중일 때만입니다. 화면이 잠겨있어 (화면 보호기 없음) 문제가있는 경우 작동하지 않습니다. kinit을 실행하면 잠긴 화면 (잠자기 상태로 전환)에서 2시에 만료 됨으로 인해 정지 상태가 계속 발생합니다. = ( –

+0

스테이션이 잠겨 있으면이 작업을 수행합니까? 스테이션이 잠겨 있으면'화면 보호기 환경 설정 실행 '과 마찬가지로 – Noitidart

+1

@Noitidart, 직접 시도해 볼 수 있습니다. 화면 보호기 사용을 의미하는 경우 (OS X Yosemite에서 시도한) 작동하는 것처럼 보입니다 . –

관련 문제