우리는 모두 Mac OS X에 로그인 할 때 실행할 앱 / 스크립트를 설정할 수 있는 매우 유용한 로그인 항목 기능이 있다는 것을 알고 있습니다.
로그 아웃 할 때 실행되는 스크립트 / 앱 목록을 설정하는 방법을 찾고 있습니다. “로그 아웃 항목”목록.
기본적으로 로그 아웃하거나 종료 할 때 자동으로 실행되는 약간의 정리 스크립트를 작성하고 싶습니다.
따라서 로그 아웃 할 때 스크립트 (또는 이상적으로는 목록)가 자동으로 트리거되는 방법을 찾고 있습니다. 로그 아웃은 스크립트가 완료 될 때까지 기다립니다 (앱에서 요청하면 저장을 클릭 할 때까지 로그 아웃하는 방식과 동일).
Mac OS X에서 로그 아웃 할 때 자동으로 (a) 스크립트를 트리거하는 방법이 있습니까?
답변
로그 아웃 후크는 10.4 에서 더 이상 사용되지 않지만 10.9부터 작동합니다.
sudo defaults write com.apple.loginwindow LogoutHook ~/.logouthook
echo $'#!/bin/bash\nsay a' > ~/.logouthook
chmod +x ~/.logouthook
LogoutHook 키의 값은 셸 명령이 아닌 실행 파일의 경로 일 수 있습니다. 로그 아웃 후크는 루트로 실행됩니다.
기본 명령은 /var/root/Library/Preferences/com.apple.loginwindow.plist를 수정합니다. /Library/Preferences/com.apple.loginwindow.plist에 LogoutHook 키를 추가해도 작동하지 않습니다.
로그 아웃 후크를 실행하는 데 시간이 오래 걸리면 로그 아웃 후크가 종료 될 때까지 회색 화면이 표시됩니다. 로그 아웃 후크가 강제 종료 된 후 시간 제한이없는 것 같습니다.
나는 발사 된 프로그램을 안정적으로 로그 아웃 할 수있는 방법을 찾지 못했습니다. EXIT와 같은 신호 트래핑을 시도 할 때 트랩의 코드는 로그인 창에 로그 아웃 할 때만 실행되었으며 종료하거나 다시 시작할 때는 실행되지 않았습니다.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>test</string>
<key>ProgramArguments</key>
<array>
<string>bash</string>
<string>-c</string>
<string>trap 'echo a>/Users/username/Desktop/a;say a' EXIT;while :;do sleep 10;done</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
답변
실제로 방법이 있습니다.
- “스크립트 편집기”앱을 엽니 다
- 풀
do shell script "PUT YOUR START SCRIPT PATH HERE"
on quit
do shell script "PUT YOUR STOP SCRIPT PATH HERE"
continue quit
end quit
- 파일> 저장, 응용 프로그램 선택 및 핸들러 실행 및 저장 후 열린 상태 유지
- 시스템 환경 설정> 사용자 및 그룹> 로그인 항목 탭> + 버튼
- 응용 프로그램을 추가하고 숨김으로 표시
Dock에서 숨기려면
- 애플리케이션을 마우스 오른쪽 단추로 클릭하고 패키지 컨텐츠 표시를 선택하십시오.
- Info.plist를 열고 추가하십시오
<key>NSUIElement</key>
<string>1</string>
답변
이를 위해 스크립트 타이머 가 적합합니다. 로그 아웃, 로그인 등에서 실행할 수 있습니다. 간단하고 사용하기 쉬운 솔루션을 위해 이것과 함께 갈 것입니다. 간단한 GUI가 있습니다.
스크립트 타이머에 대해 두 가지주의 할 사항이 있습니다. 하나는 무료 가 아닙니다 . 12 달러가 들지만 개인적으로는 그만한 가치가 있다고 생각합니다. 둘째, Lion과 완벽하게 호환되지는 않지만 호환 되 자마자 무료 업데이트를 약속했습니다.
답변
Platypus 와 같은 것을 사용하여 스크립트에서 Mac 응용 프로그램을 만든 다음 다른 응용 프로그램과 마찬가지로 로그인 항목에 추가 할 수도 있습니다.
답변
Power Manager 는 사용자가 로그 아웃 할 때 스크립트를 실행할 수 있습니다. 이것은 상용 제품이며 최신 macOS를 지원합니다.
이벤트 편집기를 사용하는 이전 버전이 필요 했지만 이제 로그인 및 로그 아웃시 스크립트 실행을위한 스케줄 지원 태스크가 포함되었습니다.
Power Manager를 작성 했으므로 구현에 대한 기술적 인 질문을 자유롭게하십시오. 트리거 된 이벤트 로그 아웃의 경우 Power Manager는 사용자 상태 변경을 폴링하지 않고 macOS에 의해 사용자 변경 사항을 통지합니다. 이 방법은 스크립트 루핑 / 폴링보다 효율적입니다.