MacBook Air 또는 Pro의 디스플레이 덮개를 닫을 때 사용자 지정 스크립트 (아마도 bash 스크립트)를 자동으로 즉시 호출하도록 MacOS (10.8 이상)를 어떻게 구성 할 수 있습니까?
세부.
일부 시나리오에서는 10.8.5를 실행하는 MacBook Air 2013이 뚜껑을 닫을 때 즉시 화면을 잠자기 / 잠그지 않기 때문에 (VPN 클라이언트가 연결을 열려고하기 때문에)이 작업을하고 싶습니다. 따라서 시스템 이 뚜껑을 닫을 때이 화면 절약 및 잠금 절차 를 호출하는 스크립트를 즉시 실행하기를 원합니다 . 그러나 디스플레이 뚜껑을 닫을 때 스크립트를 호출하는 방법을 모르겠습니다.
답변
뚜껑을 닫을 때 프로그램에 알리는 방법이없는 것 같습니다. 그러나, 뚜껑의 상태는 주기적으로 (및이 경우에는 매초마다) 모니터링 될 수 있고 뚜껑 상태에 기초하여 수행 될 수있다.
귀하의 필요에 맞는 완벽한 솔루션을 제공 할 수있는 프로그램을 모르지만 다음 정보를 사용하여 직접 솔루션을 구축 할 수 있습니다.
- 이 clamshellstate.pl 펄 스크립트를 다운로드
-
다음 과 같이
Terminal
(아래에서/Applications/Utilities
) 실행할 수 있습니다 ../clamshellstate.pl 1
현재 뚜껑 상태를 나타내는 “Open”또는 “Closed”와 같은 출력을 얻기 위해
-
다음과 같은 쉘 스크립트를 작성하십시오 ( 스크립트를 실행 하려는 쉘 스크립트 로 대체하십시오 ).
./clamshellstate.pl 1 | grep Closed > /dev/null && *script-to-run*
-
launchd.plist를 사용하여 1 초마다 한 번씩 실행되도록이 스크립트를 구성하십시오 . 또는 Lingon 을 사용 하여 launchd.plist를 쉽게 구성하십시오.
참고 : clamshellstate.pl 대신 다음 명령을 사용할 수도 있습니다 Terminal
.
ioreg -r -k AppleClamshellState | grep '"AppleClamshellState" = Yes' | cut -f2 -d"="
닫힌 상태에 대해 “예”를, 열린 상태에 대해 “아니요”를 얻습니다.
답변
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 매뉴얼 페이지 참조).
답변
뚜껑이 닫혔는지 여부를 포함하여 Mac의 다양한 상태 변경에 적용 할 수 있는 ControlPlane 앱을 사용해 볼 수 있습니다.
또한 Hammerspoon 을 사용 하여 다른 질문에 대한 답변 에서 언급했듯이 깨우고 잠자는 특정 스크립트를 활성화 할 수 있습니다 . 루아 스크립트는 ioreg -r -k AppleClamshellState
여기에서 MK의 답변에 언급 된 테스트를 사용하여 뚜껑 상태를 확인하기 위해 확장 될 수 있습니다 .