私はlaunchdを使い始めており、Mac miniサーバー(Snow Leopardサーバーを使用)にSDカードを挿入するたびにシェルスクリプトを実行するようにplistファイルを設定したいと考えています(すべてのjpgファイルをコピーする必要があります) 、名前を変更するなど)。
そこで、~/Library/LaunchAgents に plist ファイルを作成し (その内容については以下を参照してください - /Volumes への変更を探す必要があります)、「ビープ音」と言うシェルスクリプトを作成しました - 後でもっと便利なことをします.
plist ファイルは launchctl に登録されており、それを実行すると (launchctl start com.peters.runwhenSDmount)、コンピューターはメモリ カードが差し込まれるたびにビープ音を発し、メモリ カードが挿入されていないときは無音のままです。そのため、明らかに plist はシェル スクリプトを呼び出し、その後、特定の SD カードがそこにあるかどうかをチェックします。これも、SD カードのパーミッションに問題がないことを証明していると思います。
しかし、それはそれ自体で実行されないようですか?理由はわかりますか??
plist ファイル: ~/Library/LaunchAgents/com.peters.runwhenSDmount.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">
<dict>
<key>Label</key>
<string>com.peters.runwhenSDmount</string>
<key>LowPriorityIO</key>
<true/>
<key>ProgramArguments</key>
<array>
<string>/Users/peter/Library/Scripts/runwhenSDmount</string>
</array>
<key>ThrottleInterval</key>
<integer>10</integer>
<key>WatchPaths</key>
<array>
<string>/Volumes</string>
</array>
</dict>
</plist>
シェルスクリプト: ~/Library/Scripts/runwhenSDmount
#!/bin/bash
if [ -d "/Volumes/NIKON D40X" ]; then
say beep
fi