답변:
OS X의 로그인 / 로그 아웃시 스크립트를 실행하는 방법 은 여러 가지 가 있으며 , 일부는 최신 버전이며 10.5 이상에만 적용되며 일부는 더 이상 사용되지 않지만 가장 빠른 방법은을 추가하는 것 Login Hook
입니다.
먼저 실행할 스크립트를 작성하십시오. 터미널을 열고 다음을 입력하십시오.
touch ~/script.sh
open -e !$
텍스트 편집기가 열립니다. 다음 내용을 포함하여 스크립트를 입력하십시오.
#!/bin/sh
# insert your script here
파일을 저장하십시오. 터미널에서 다음을 실행하십시오.
chmod +x ~/script.sh
파일을 실행 가능하게 만듭니다. 이제 이것을 훅으로 추가하자 :
sudo defaults write com.apple.loginwindow LoginHook /usr/local/bin/script.sh
도있다 Logout Hook
대응은 :
sudo defaults write com.apple.loginwindow LogoutHook /usr/local/bin/script2.sh
나는 OS X 10.6에서이 테스트를했습니다, 그리고 그것을 해야한다 도 10.8로 작동합니다. 스크립트는 그대로 실행되며 root
각각 로그인 및 로그 아웃을위한 후크는 하나만 있습니다.
모든 것을 취소하려면 다음을 입력하십시오.
sudo defaults delete com.apple.loginwindow LoginHook
sudo defaults delete com.apple.loginwindow LogoutHook
이 방법은 배포 또는 기타 방법에 권장되지 않지만 언급 한 질문과 같이 사용하는 경우 문제가되지 않습니다.
10.4에서는 로그인 후크가 더 이상 사용되지 않아 시작되었습니다. 로그인시 스크립트를 실행하려면 다음과 같이 plist를 저장하십시오 ~/Library/LaunchAgents/test.plist
. 를 실행하지 않아도 다음 로그인시로드됩니다 launchctl load ~/Library/LaunchAgents/test.plist
.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC -//Apple Computer//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>say</string>
<string>test</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
자세한 내용은 다음을 참조 man launchd.plist
하고 ,이 블로그 게시물 .
이러한 후크가 10.10에서 작동하려면 다음을 수행해야합니다.
/etc/ttys
파일을 엽니 다. Finder의 이동 메뉴에서 폴더로 이동을 선택하고을 입력 /etc/
한 다음 이동을 클릭하십시오.
결과 창 ttys
에서 원하는 텍스트 편집기 (예 : TextEdit) 에서 파일을 엽니 다 .
다음과 같은 줄을 찾으십시오.
console "/System/Library/CoreServices/loginwindow.app/Contents/MacOS/loginwindow" vt100 on secure window=/System/Library/CoreServices/WindowServer onoption="/usr/libexec/getty std.9600"
다음과 같이 읽도록이 행을 편집하십시오 (이 행에 중단이 없음).
console "/System/Library/CoreServices/loginwindow.app/Contents/MacOS/loginwindow -LoginHook /path/to/script" vt100 on secure window=/System/Library/CoreServices/WindowServer onoption="/usr/libexec/getty std.9600"
즉, 두 번째 따옴표 ( ) 표시 바로 앞에 add ( 사용자가 로그인 할 때 실행할 스크립트의 전체 경로 )가 있습니다.-LoginHook /path/to/script
/path/to/script
"
파일을 저장하십시오.
이 파일을 편집하는 데 사용하는 텍스트 편집기가 위의 행을 둘 이상의 행으로 분리하지 않아야합니다.
또는 전체 지침을 따르십시오.