ホーム チュートリアル カテゴリ Skills サイトについて
ZH EN JA KO
インストール

systemdでOpenClawのバックグラウンドサービスを管理する

· 10 分で読了

systemd 管理が必要な理由

Linux サーバーに OpenClaw をインストールした後、ターミナルで直接 openclaw start を実行しても動作しますが、いくつかの問題があります。SSH 接続を閉じるとプロセスが終了する、サーバーの再起動後に手動で起動が必要、クラッシュ後に自動復旧できない、などです。systemd は現代の Linux システムの標準サービスマネージャーであり、これらの問題を完全に解決できます。

本記事では、systemd を使って OpenClaw を信頼性の高いバックグラウンドサービスとして設定し、自動起動、クラッシュ自動復旧、ログの一元管理を実現する方法を詳しく紹介します。

前提条件

  • OpenClaw がインストール済み(npm install -g openclaw@latest または公式インストールスクリプト経由)
  • openclaw onboard の初期設定が完了済み
  • Linux システムが systemd を使用している(Ubuntu 16.04+、Debian 9+、CentOS 7+、Fedora など)

自動インストール方式

OpenClaw はデーモンプロセスの自動設定コマンドを提供しています。Linux システムでは、自動的に systemd サービスが作成されます。

openclaw onboard --install-daemon

初期ガイダンス時にこのコマンドを実行済みの場合、systemd サービスはすでに設定されている可能性があります。以下のコマンドで確認できます。

systemctl status openclaw

サービスが存在し正常に動作している場合は、手動設定の部分をスキップして、後半の管理・最適化のセクションに進んでください。

手動で systemd サービスを作成する

自動インストールが機能しなかった場合、またはカスタム設定を行いたい場合は、手動で systemd サービスファイルを作成できます。

OpenClaw のパスを確認

まず OpenClaw 実行ファイルの場所を確認します。

which openclaw

通常は /usr/bin/openclaw または /usr/local/bin/openclaw です。このパスを控えておいてください。

また、OpenClaw を実行するユーザー名とホームディレクトリも確認します。

echo $USER
echo $HOME

サービスファイルの作成

お好みのエディターで systemd サービスファイルを作成します。

sudo nano /etc/systemd/system/openclaw.service

以下の内容を記入します。

[Unit]
Description=OpenClaw AI Agent Gateway
Documentation=https://openclaw.ai/docs
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
User=あなたのユーザー名
Group=あなたのユーザー名
WorkingDirectory=/home/あなたのユーザー名
ExecStart=/usr/local/bin/openclaw start
ExecReload=/bin/kill -HUP $MAINPID
Restart=always
RestartSec=5
StartLimitBurst=5
StartLimitIntervalSec=60

# 環境変数
Environment=NODE_ENV=production
Environment=HOME=/home/あなたのユーザー名

# セキュリティ強化
NoNewPrivileges=yes
ProtectSystem=strict
ProtectHome=read-only
ReadWritePaths=/home/あなたのユーザー名/.openclaw

# リソース制限
LimitNOFILE=65536
MemoryMax=1G

# ログ
StandardOutput=journal
StandardError=journal
SyslogIdentifier=openclaw

[Install]
WantedBy=multi-user.target

上記の「あなたのユーザー名」を実際の Linux ユーザー名に置き換えてください。OpenClaw のインストールパスが異なる場合は、ExecStart 内のパスも適宜変更してください。

設定の説明

このサービスファイルにはいくつかの重要な設定値があります。

  • Restart=alwaysRestartSec=5:サービスがクラッシュした後、5 秒ごとに自動再起動し、高可用性を確保
  • StartLimitBurst=5StartLimitIntervalSec=60:60 秒以内の再起動回数を最大 5 回に制限し、無限再起動ループを防止
  • ProtectSystem=strictProtectHome=read-only:セキュリティ強化オプション、サービスのファイルシステム書き込み権限を制限
  • ReadWritePaths:OpenClaw 設定ディレクトリ ~/.openclaw への書き込みを明示的に許可
  • LimitNOFILE=65536:ファイルディスクリプタの上限を引き上げ、高並発接続シーンに対応

サービスの有効化と管理

サービスのロードと起動

sudo systemctl daemon-reload
sudo systemctl enable openclaw
sudo systemctl start openclaw

enable コマンドでサービスを自動起動に設定し、start コマンドで即座にサービスを起動します。

よく使う管理コマンド

サービスの状態を確認する場合:

sudo systemctl status openclaw

サービスを停止する場合:

sudo systemctl stop openclaw

サービスを再起動する場合:

sudo systemctl restart openclaw

設定をリロードする場合(サービスを中断しない):

sudo systemctl reload openclaw

自動起動を無効にする場合:

sudo systemctl disable openclaw

ログ管理

systemd は journald を通じてサービスログを一元管理します。以下はよく使うログ確認コマンドです。

リアルタイムでログ出力を追跡する場合:

journalctl -u openclaw -f

最新 100 行のログを表示する場合:

journalctl -u openclaw -n 100

今日のログを表示する場合:

journalctl -u openclaw --since today

特定の時間範囲のログを表示する場合:

journalctl -u openclaw --since "2026-03-14 08:00:00" --until "2026-03-14 18:00:00"

優先度でフィルタ(エラーのみ表示)する場合:

journalctl -u openclaw -p err

診断の実行

サービス起動後、OpenClaw の組み込み診断ツールを実行することを推奨します。

openclaw doctor

このコマンドは、Node.js のバージョンが 22 以上の要件を満たしているか、設定ファイル ~/.openclaw/openclaw.json が完全か、各チャットプラットフォームの接続が正常か、ネットワークの到達性などの重要項目をチェックします。

設定ファイルの更新

~/.openclaw/openclaw.json 設定ファイルを変更した後、サービスを再起動して変更を反映させる必要があります。

sudo systemctl restart openclaw

マルチインスタンス運用

同一サーバーで複数の OpenClaw インスタンスを実行する必要がある場合(例:本番環境とテスト環境)、systemd のテンプレートインスタンス機能を使用できます。

sudo cp /etc/systemd/system/openclaw.service /etc/systemd/system/[email protected]

テンプレートファイルを修正して固定パスをインスタンスパラメータ化されたパスに置き換え、それぞれ異なるインスタンスを起動します。

sudo systemctl start openclaw@production
sudo systemctl start openclaw@staging

トラブルシューティング

サービスが起動できない場合は、以下の手順でトラブルシューティングを行います。

  1. ログを確認:journalctl -u openclaw -n 50 --no-pager
  2. 手動で実行して正常に動作するか確認:openclaw start
  3. パーミッションを確認:サービスユーザーが ~/.openclaw/ ディレクトリの読み書き権限を持っていることを確認
  4. ポートの競合を確認:ss -tlnp | grep 3000
  5. Node.js のバージョンを確認:node --version(22 以上が必須)

まとめ

systemd で OpenClaw サービスを管理することで、エンタープライズグレードのサービス信頼性が得られます——自動起動、クラッシュ自動復旧、一元化されたログ管理。セキュリティ強化オプションとリソース制限を組み合わせることで、この設定は本番環境での長期安定運用に適しています。

OpenClawは無料のオープンソースAIアシスタント。WhatsApp、Telegram、Discordなど多数のプラットフォームに対応