MacBook Air / Pro : 뚜껑을 닫을 때 스크립트를 실행 하시겠습니까?


6

MacBook Air 또는 Pro의 디스플레이 덮개를 닫을 때 사용자 지정 스크립트 (아마도 bash 스크립트)를 자동으로 즉시 호출하도록 MacOS (10.8 이상)를 어떻게 구성 할 수 있습니까?

세부.

일부 시나리오에서는 10.8.5를 실행하는 MacBook Air 2013이 뚜껑을 닫을 때 즉시 화면을 잠자기 / 잠그지 않기 때문에 (VPN 클라이언트가 연결을 열려고하기 때문에)이 작업을하고 싶습니다. 따라서 시스템 뚜껑을 닫을 때이 화면 절약 및 잠금 절차 를 호출하는 스크립트를 즉시 실행하기를 원합니다 . 그러나 디스플레이 뚜껑을 닫을 때 스크립트를 호출하는 방법을 모르겠습니다.

답변:


6

뚜껑을 닫을 때 프로그램에 알리는 방법이없는 것 같습니다. 그러나, 뚜껑의 상태는 주기적으로 (및이 경우에는 매초마다) 모니터링 될 수 있고 뚜껑 상태에 기초하여 수행 될 수있다.

귀하의 필요에 맞는 완벽한 솔루션을 제공 할 수있는 프로그램을 모르지만 다음 정보를 사용하여 직접 솔루션을 구축 할 수 있습니다.

  1. clamshellstate.pl 펄 스크립트를 다운로드
  2. 다음 과 같이 Terminal(아래에서 /Applications/Utilities) 실행할 수 있습니다 .

    ./clamshellstate.pl 1  
    

    현재 뚜껑 상태를 나타내는 "Open"또는 "Closed"와 같은 출력을 얻기 위해

  3. 다음과 같은 쉘 스크립트를 작성하십시오 ( 스크립트를 실행 하려는 쉘 스크립트 대체하십시오 ).

    ./clamshellstate.pl 1 | grep Closed > /dev/null && *script-to-run*
    
  4. launchd.plist를 사용하여 1 초마다 한 번씩 실행되도록이 스크립트를 구성하십시오 . 또는 Lingon 을 사용 하여 launchd.plist를 쉽게 구성하십시오.

참고 : clamshellstate.pl 대신 다음 명령을 사용할 수도 있습니다 Terminal.

ioreg -r -k AppleClamshellState | grep '"AppleClamshellState" = Yes' | cut -f2 -d"="

닫힌 상태에 대해 "예"를, 열린 상태에 대해 "아니요"를 얻습니다.


1
수면이 아닌 뚜껑을 닫을 때 스크립트를 실행해야합니다 . 나는 닫힘과 수면 사이에 발생할 수있는 지연으로 인해 뚜껑 닫힘과 수면을 구체적으로 구분합니다 (실제로 지연을 경험했습니다. 위의 참조는 "약 15 [초]"확인). 도둑)는 MacBook을 닫은 후 (공항에있는 누군가에게 "적중 한 도난"도용으로 합당한) MacBook을 몇 초 후에 잡아서 열어서 로그인 한 계정의 암호를 재설정했습니다.
Johnny Utahh

답변을 업데이트했지만 완전한 솔루션을 개발하려면 스크립팅 작업을 수행해야합니다.
MK

터미널 명령은 다음과 같아야합니다.ioreg -r -k AppleClamshellState | grep '"AppleClamshellState"' | cut -f2 -d"="
Lei Zhang

3

SleepWatcher를 사용해 볼 수도 있습니다 . 지침은 readme를 참조하십시오.

1. SleepWatcher 소프트웨어를 설치하십시오.

$ sudo mkdir -p /usr/local/sbin /usr/local/share/man/man8
$ sudo cp ~/Desktop/sleepwatcher_2.2/sleepwatcher /usr/local/sbin
$ sudo cp ~/Desktop/sleepwatcher_2.2/sleepwatcher.8 /usr/local/share/man/man8

2. 매뉴얼 페이지를 읽고 사용하려는 SleepWatcher의 기능에 대해 생각해보십시오.

$ man sleepwatcher

3. SleepWacher에서 트리거하려는 조치를 수행하는 작은 쉘 스크립트를 작성하고 테스트하십시오.

4. 터미널 창에서 포 그라운드에서 시작하여 SleepWatcher와 함께 스크립트를 테스트하십시오. 예 :

$ /usr/local/sbin/sleepwatcher --verbose --sleep /path/to/your/sleepscript --wakeup /path/to/your/wakeupscript ...

5. SleepWatcher 명령 줄을 시작된 에이전트 구성 파일에 넣습니다. 예를 들어 ~ / Desktop / sleepwatcher_2.2 / config의 plist 중 하나를 사용할 수 있습니다. 시작 및 구성에 대한 자세한 내용은 launchd and launchd.plist 및 http://developer.apple.com/macosx/launchd.html의 매뉴얼 페이지를 참조하십시오.

6. 시스템 전체 데몬 또는 사용자 에이전트가 필요한지 여부에 따라 시작된 에이전트 구성을 / Library / LaunchDaemons 또는 ~ / Library / LaunchAgents에 복사하십시오.

7. launchctl을 사용하여 실행 된 에이전트 구성을로드하십시오 (위의 예제 및 launchctl 매뉴얼 페이지 참조).


sleepwatcherMacPorts를 통해서도 이용할 수 있습니다.
Stefan Lasiewski

2

뚜껑이 닫혔는지 여부를 포함하여 Mac의 다양한 상태 변경에 적용 할 수 있는 ControlPlane 앱을 사용해 볼 수 있습니다.

또한 Hammerspoon 을 사용 하여 다른 질문에 대한 답변 에서 언급했듯이 깨우고 잠자는 특정 스크립트를 활성화 할 수 있습니다 . 루아 스크립트는 ioreg -r -k AppleClamshellState여기에서 MK의 답변에 언급 된 테스트를 사용하여 뚜껑 상태를 확인하기 위해 확장 될 수 있습니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.