Skip to content

OS起動時のサーバー自動起動 (systemd / タスクスケジューラ) (#59) - #83

Open
hide10 wants to merge 2 commits into
masterfrom
feature/issue-59-autostart
Open

OS起動時のサーバー自動起動 (systemd / タスクスケジューラ) (#59)#83
hide10 wants to merge 2 commits into
masterfrom
feature/issue-59-autostart

Conversation

@hide10

@hide10 hide10 commented Jun 17, 2026

Copy link
Copy Markdown
Owner

概要

PC起動/ログイン時にダッシュボードが自動起動するよう、OS別の登録手段を追加した (#59)。

変更内容

  • scripts/mf-tracker.service (新規): systemd ユーザーサービスのテンプレート。__WORKDIR__ / __PYTHON__ を install.sh が絶対パスへ置換する。Restart=on-failureWantedBy=default.target
  • scripts/register-task.ps1 (新規): Windows のログオン時タスクを登録/解除。pythonw.exe でコンソール非表示起動。-Unregister で解除。
  • install.sh: --autostart でユニットを生成し systemctl --user enable --now まで実行。systemctl 不在時は警告してスキップ。
  • install.ps1: -AutoStart で register-task.ps1 を呼ぶ。
  • tests/test_systemd_unit.py (新規): ユニットの構文・構造を検証。

起動コマンドは既存どおり python -m src.web.server(127.0.0.1:8080)。

自動テスト(pytest で検証済み)

  • systemd ユニットファイルの構文・必須セクション/キー検証 (tests/test_systemd_unit.py 6件パス)
  • プレースホルダ置換後に未解決トークンが残らない
  • bash -n install.sh 構文OK / systemd-analyze verify で構文エラーなし(実行ファイル不在の指摘のみ)

人間が確認すること

  • Linux/WSL で bash install.sh --autostart 後、reboot(または systemctl --user restart mf-tracker)でサーバーが自動起動するか
  • WSL など非ログインセッションでは loginctl enable-linger $USER が必要か確認
  • Windows で install.ps1 -AutoStart 後、ログオンでコンソール非表示のまま起動するか
  • サービス/タスクの停止・無効化(systemctl --user disable --now mf-tracker / register-task.ps1 -Unregister)が正常か

🤖 Generated with Claude Code

- scripts/mf-tracker.service: systemd ユーザーサービスのテンプレート
- scripts/register-task.ps1: Windows ログオン時タスク登録/解除
- install.sh: --autostart で systemd ユーザーサービスを生成・有効化
- install.ps1: -AutoStart で register-task.ps1 を実行
- tests/test_systemd_unit.py: ユニットの構文・構造を検証

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- scripts/register-wsl-startup.sh: Windowsスタートアップに VBS ランチャを置き、
  ログオン時に wsl -d <distro> を無音起動(管理者権限不要、--unregisterで解除)
- docs/autostart.md: Linux / WSL+Windows / ネイティブWindows の3経路を整理

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@hide10

hide10 commented Jun 17, 2026

Copy link
Copy Markdown
Owner Author

WSL 運用向けの導線を追加しました。

  • scripts/register-wsl-startup.sh: WSL2(systemd) でサーバーを動かす場合に、Windows スタートアップフォルダへ VBS ランチャを置いてログオン時に wsl -d <distro> を無音起動(管理者権限不要、--unregister で解除)。register-task.ps1 はネイティブ Windows 向けなので、WSL 運用はこちらを使う。
  • docs/autostart.md: Linux(systemd) / WSL+Windows / ネイティブWindows の3経路を整理。

実機(WSL2 Ubuntu, systemd=true)で動作確認済み: install.sh --autostart 相当の systemd ユーザーサービス + linger を有効化 → ダッシュボード HTTP 200 常駐、Startup に VBS 配置済み。完全なログオン時起動の確認は次回 Windows 再ログオンで。

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