MacOS の crontab

launchctl の使い方

  • 基本 user なので、Agent なので、 ~/Library/LaunchAgents に保存する。
  • 下記で検索
launchctl list  | rg {job}
  • bootstrap gui/{uid}

load, unload はレガシーコマンドであるとして、非推奨らしい。

この uid ってのは、 id -u で出てくる。

id -u

501

launchctl bootstrap gui/501 ~/Library/LaunchAgents/job.plist

bootout で登録から外す

  • (kick) start
launchctl kickstart -k gui/501/job

という流れ

publish

Blog Publish をスケジュールする。

一時間毎にパブリッシュする。logs の場所初めて知った。

<?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>local.blog_publish</string>
    <key>ProgramArguments</key>
    <array>
      <string>/opt/homebrew/bin/bash</string>
      <string>/Users/yasushi/.config/publish.sh</string>
    </array>
    <key>StartInterval</key>
    <integer>3600</integer>
    <key>StandardOutPath</key>
    <string>/Users/yasushi/Library/Logs/local.blog_publish.log</string>
    <key>StandardErrorPath</key>
    <string>/Users/yasushi/Library/Logs/local.blog_publish.error.log</string>
  </dict>
</plist>
launchctl bootout gui/501/local.blog_publish
launchctl bootstrap gui/501 ~/Library/LaunchAgents/local.blog-publish.plist
launchctl kickstart -k gui/501/local.blog-publish

Date: 2023-09-10 Sun 11:25