Zenn Launchd Traps Claude Code Automation
macOS で Claude Code の自動化を24/7回すと踏む launchd の罠5つ
- URL: https://zenn.dev/bokuwalily/articles/launchd-traps
- 日付: 2026-06-15
- Tier: Tier 2
- 要旨: macOS で Claude Code 関連スクリプトを launchd で24時間自動実行する際に踏む罠を5つ整理した記事。cron が modern macOS で動かないこと・PATH 問題・timeout コマンド非存在・StartCalendarInterval の構文制限などを実測と回避策つきで解説する。
詳細
罠5つの概要:
cronは modern macOS(Sequoia以降)で実質動いていない。launchdに移行が必要StartCalendarIntervalで*/5形式は使えない。周期実行はStartInterval(秒数)、特定時刻は配列で並べる- GUIから起動した子プロセスは
~/.zshrcを読まず最小PATH(/usr/bin:/bin等)しか持たない。~/.claude/settings.jsonのenv.PATHに/opt/homebrew/binを含める - macOS は GNU coreutils の
timeoutを非搭載。Homebrew でcoreutilsをインストールしてgtimeoutを使う 5.(記事では5件紹介しているが本文途中でカット)
launchd の Label は com.you.name 形式(ドットなしは拒否)、ProgramArguments は配列必須、StandardOutPath/ErrorPath を絶対パスで明示しないと出力が /dev/null に消える。