[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>
# plistを有効化
launchctl load test.plist
# plistを無効化
launchctl unload test.plist