cronで設定しようしてもなんだか動いてくれないので、launchdを調べてみた。
いま実際に動いてるものは
ls /System/Library/LaunchDaemons
すると確認できる。ここに入ってる*.plistってやつらはXMLで書かれていて、同じように書いてここに置いておけばいいみたい。
というわけで
echo "hoge" > /Users/hoge/Desktop/hoge.txt
というのを~/Desktop/hoge.shとして、これを上のリンク先みたいに書いてみた。
<?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>hoge</string>
<key>ProgramArguments</key>
<array>
<string>/Users/hoge/Desktop/hoge.sh</string>
</array>
<key>StartInterval</key>
<integer>30</integer>
</dict>
</plist>
これを、/System/Library/LaunchDaemons/hoge.plist とした。
...30秒たってもhoge.txtが生成されない。インストールが必要らしい。
launchctl load /System/Library/LaunchDaemons/hoge.plist
としたら、ちゃんと動いた! hoge.plistを修正したら、
launchctl unload /System/Library/LaunchDaemons/hoge.plist
してからもう一度loadする。
loadするときのエラー
loadしようとしたとき、
launchctl: no plist was returned for: hoge.plist
とかってエラーが出ることがある。原因の可能性はいくつかあると思うけど、構文間違いかどうかは
plutil -lint hoge.plist
ところで
上のリンクを読んでいたら、7月11日が日曜日のときというのは、
every time July 11 falls on a Sunday
というのか。不思議な言い方。
参考リンク
(OK)
最終更新:2013年11月16日 01:14