install-watchdog について
install-watchdogは、OSのスケジューラーを使う常駐監視機能を導入し、条件を満たすとegregoreのセッションを再起動するスキルです。macOSまたはLinuxで自動再起動を行うプロジェクト向けです。
主な機能
- 01launchdまたはsystemdでインストール
- 02実行中のセッションとクールダウンの確認
- 03マニフェスト内の作業項目の確認
- 04条件成立時のセッション起動
- 05スケジューラーの状態とログ場所の確認
活用シーン
- 01egregore init後の自動再起動の有効化
- 02新しいマシンでのegregoreセットアップ
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ athola/ claude-night-market --skill install-watchdogインストール後、Claude Code で/install-watchdogを入力して読み込まれたか確認します。
詳細
Watchdog のインストール
概要
egregore プロセスを監視し、必要に応じて再起動する永続的なデーモンをインストールします。 このデーモンは OS ネイティブのスケジューラー(macOS では launchd、Linux では systemd)を使用して、5 分ごとに watchdog スクリプトを実行します。
watchdog スクリプトは次の項目を確認します。
- egregore セッションがすでに実行中かどうか。
- 予算がクールダウン中かどうか。
- マニフェストにアクティブな作業項目があるかどうか。
すべての条件を満たすと、新しい egregore セッションを起動します。
使用する場面
- egregore プロジェクトの初期化(
egregore init)後、自動的に再起動したい場合。 - 新しいマシンで egregore をセットアップする場合。
使用しない場面
- CI/CD ランナー(オーケストレーターを直接使用してください)。
- セッションの起動を手動で制御したい場合。
インストール手順
1. オペレーティングシステムを検出する
OS=$(uname -s)
2. 該当するインストーラーを実行する
macOS(launchd):
bash plugins/egregore/scripts/install_launchd.sh
このスクリプトは、
~/Library/LaunchAgents/com.egregore.watchdog.plist
に plist を作成し、300 秒(5 分)ごとに watchdog スクリプトを実行します。
Linux(systemd):
bash plugins/egregore/scripts/install_systemd.sh
このスクリプトは、
~/.config/systemd/user/ に 5 分ごとに実行される systemd タイマーとサービスユニットを作成します。
3. インストールを確認する
macOS:
launchctl list | grep egregore
期待される出力:com.egregore.watchdog を含む行と、PID または - のステータス。
Linux:
systemctl --user status egregore-watchdog.timer
期待される出力:active (waiting) ステータス。
4. ユーザーに確認する
インストール結果、スケジュール間隔、ログファイルの場所を報告します。
- macOS:
~/.egregore/watchdog.log - Linux:
journalctl --user -u egregore-watchdog
アンインストールコマンド
watchdog を削除するには、次を実行します。
Skill(egregore:uninstall-watchdog)
または、コマンド
/egregore:uninstall-watchdog でアンインストールスキルを直接呼び出します。
トラブルシューティング
- plist へのアクセスが拒否される場合:スクリプトが root ではなく、現在のユーザーとして実行されていることを確認してください。
- systemd のユーザーセッションを利用できない場合:
loginctl enable-linger $USERを実行して、アクティブなログインセッションなしでユーザーサービスを有効にしてください。 - watchdog が実行されない場合:ログ出力を確認し、スケジューラーが読み込まれていることを確認してください(
launchctl listまたはsystemctl --user list-timers)。
完了条件
- macOS:インストールスクリプトの完了後に
~/Library/LaunchAgents/com.egregore.watchdog.plistが存在する - Linux:インストールスクリプトの完了後に
~/.config/systemd/user/egregore-watchdog.timerが存在する - 確認コマンドでデーモンが読み込まれていることを確認できる:
launchctl list | grep egregoreが行を返す(macOS)、またはsystemctl --user status egregore-watchdog.timerがactive (waiting)を示す(Linux) - インストール後、スケジュール間隔(300 秒/5 分)とログファイルのパスが ユーザーに報告されている
-
permission deniedが発生した場合、対処方法(root ではなく現在のユーザーとして実行すること)とともにエラーが報告されている