重要なシステム ファイルを監視するエージェントを作成しました: ag1-launchagents
#!/bin/bash
arg1=/System/Library/LaunchAgents
fswatch $arg1 "growlnotify -n "FSWatch" -m "FSWATCH:Changed:$arg1" -s"
変更を個別に監視し、growlnotify を介して通知を出力するために、他の 6 つのディレクトリ用に同じファイルを作成しました。スクリプトは、コマンド ラインを使用して完全に正常に動作します。
次のステップは、*.plist ファイルを介して ag1-ag7 を自動起動することです。
<?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>com.user.fswatch</string>
<key>ProgramArguments</key>
<array>
<string>/Library/Scripts/Shell/ag1-launchagent.sh</string>
<string>/Library/Scripts/Shell/ag2-launchdaemons.sh</string>
<string>/Library/Scripts/Shell/ag3-bin.sh</string>
<string>/Library/Scripts/Shell/ag4-etc.sh</string>
<string>/Library/Scripts/Shell/ag5-usrbin.sh</string>
<string>/Library/Scripts/Shell/ag6-usrsbin.sh</string>
<string>/Library/Scripts/Shell/ag7-sbin.sh</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>Nice</key>
<integer>10</integer>
<key>KeepAlive</key>
<false/>
<key>AbandonProcessGroup</key>
<true/>
</dict>
</plist>
しかし、うまくいきません。
plistは正しいようです。putilで確認しました。しかし、launchctl load *.plist を介して plist を実行し、エージェントが監視する必要があるフォルダーを変更すると、通知が 1 つも表示されません。
注: ProgramArguments ブロック内の 1 行で試してみましたが、*.sh ファイルは 1 つしか開始しませんでした。しかし、それもうまくいきませんでした。
それについて何か考えはありますか?