Skip to content

feat(systemd): DDNS_TIME と UPDATE_TIME を独立した2本のタイマーで管理 (issue #52)#53

Closed
liplus-lin-lay wants to merge 1 commit intomainfrom
issue-52-two-timers
Closed

feat(systemd): DDNS_TIME と UPDATE_TIME を独立した2本のタイマーで管理 (issue #52)#53
liplus-lin-lay wants to merge 1 commit intomainfrom
issue-52-two-timers

Conversation

@liplus-lin-lay
Copy link
Copy Markdown
Collaborator

@liplus-lin-lay liplus-lin-lay commented Mar 5, 2026

クローズ理由

2本タイマー方式は systemd 側に複雑さを押し出す設計であり、実機デバッグで「check タイマーのせいか keepalive タイマーのせいか」の切り分けが困難になる。

デーモン方式に変更する (#55) ため本 PR を取り下げる。

DDNS_TIME (IP チェック間隔) と UPDATE_TIME (keepalive 間隔) を独立した
systemd タイマーで制御することで、任意の組み合わせが正しく動作するようにする。
例: DDNS_TIME=1d, UPDATE_TIME=2m も DDNS_TIME=1m, UPDATE_TIME=30d も両立可能。

- systemd/dipper_ai-keepalive.service/.timer を新規追加
- internal/mode/keepalive.go: `keepalive` コマンドを新規実装
  - MyDNS 全エントリを無条件で force update
  - Cloudflare は対象外 (keepalive 不要)
  - EMAIL_UP_DDNS 対応
- cmd/dipper_ai/main.go: `keepalive` サブコマンドを追加
- internal/mode/update.go: forceSync / updateGate ロジックを除去
  - update コマンドは IP 変化時のみ更新するシンプルな責務に
- scripts/install.sh: DDNS_TIME タイマーと UPDATE_TIME タイマーを両方生成
  - UPDATE_TIME=0 の場合は keepalive タイマーをインストールしない
- テスト: keepalive_test.go 新規追加、update_test.go を keepalive 分離に合わせ更新

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant