launchd를 사용하여 OS X에서 Finder 종료 및 다시 시작

launchd를 사용하여 OS X에서 Finder 종료 및 다시 시작

로그인 시 실행 에이전트를 사용하여 Finder를 종료한 다음 다시 실행하려고 합니다.토탈파인더, OS X 10.7용 컬러사이드바 모드를 자동으로 적용합니다(모드는 다음에서 찾을 수 있습니다).여기).

발사 에이전트를 사용하여 쉘 스크립트를 호출하면 다음과 같이 괜찮습니다.

<?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>com.colorsidebar.root</string>
    <key>KeepAlive</key>
    <false/>
    <key>RunAtLoad</key>
    <true/>
    <key>ProgramArguments</key>
    <array>
        <string>/POSIX/path/to/some/shell/script.sh</string>
    </array>
</dict>
</plist>

그런 다음 쉘 스크립트에서 내가 사용하는 것은

#!/bin/bash
#
#This file kills the finder on user session start
#and re-launches TotalFinder
#

killall Finder
Open /Applications/TotalFinder.app

이제 두 가지를 이렇게 결합하려고하면

<?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>com.colorsidebar.root</string>
    <key>KeepAlive</key>
    <false/>
    <key>RunAtLoad</key>
    <true/>
    <key>ProgramArguments</key>
    <array>
        <string>/bin/bash</string>
        <string>killall Finder</string>
        <string>open /Applications/TotalFinder.app</string>
    </array>
</dict>
</plist>

작동하지 않으며 콘솔에 다음 오류가 표시됩니다.

8/21/11 5:16:16.957 PM com.colorsidebar.root: /bin/bash: killall Finder: 해당 파일이나 디렉터리가 없습니다.

답변1

bash인수로 파일 이름(예: 스크립트)이 제공될 것으로 예상합니다. "killall Finder"라는 파일이 없으므로 해당 오류가 발생합니다. bash에 명령을 인수로 전달하려면 옵션을 사용해야 하며 -c명령을 단일 인수로 전달해야 합니다.

<key>ProgramArguments</key>
<array>
    <string>/bin/bash</string>
    <string>-c</string>
    <string>killall Finder; open /Applications/TotalFinder.app</string>
</array>

관련 정보