[macOS] 34 launchdによる定期実行 実施例

[macOS Big Sur 11.6.1]

launchdによるプログラムの定期実行を試してみました。

エディタやXcodeを使ってxml形式でplistファイルを作成するのですが、エディタでは非常に書きにくいです。Xcodeが多少マシかと思います。どちらにしても結局crontabの方が扱いやすいです。

plistファイルを/Library/LaunchAgentsに作成したら、chownコマンドで所有者変更、chmodコマンドで権限変更します。最後にplistファイルをロードすると定期実行が始まります。

下記コード例では60秒おきにtest.pyを実行します。

このスキルはcrontabが使えなくなった際の代替手段としてストックしておきます。htmlとxmlは極力書きたくないです。だからなのかJavaScriptとはまた疎遠になっています。

<?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>test</string>
    <key>ProgramArguments</key>
    <array>
        <string>python</string>
        <string>test.py</string>
    </array>
    <key>StartInterval</key>
    <integer>60</integer>
    <key>StandardOutPath</key>
    <string>test.out</string>
    <key>StandardErrorPath</key>
    <string>test.err</string>
</dict>
</plist>
Xcodeでplistを表示
# plistを有効化
launchctl load test.plist

# plistを無効化
launchctl unload test.plist