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=always と RestartSec=5:サービスがクラッシュした後、5 秒ごとに自動再起動し、高可用性を確保
- StartLimitBurst=5 と StartLimitIntervalSec=60:60 秒以内の再起動回数を最大 5 回に制限し、無限再起動ループを防止
- ProtectSystem=strict と ProtectHome=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
トラブルシューティング
サービスが起動できない場合は、以下の手順でトラブルシューティングを行います。
- ログを確認:
journalctl -u openclaw -n 50 --no-pager - 手動で実行して正常に動作するか確認:
openclaw start - パーミッションを確認:サービスユーザーが
~/.openclaw/ディレクトリの読み書き権限を持っていることを確認 - ポートの競合を確認:
ss -tlnp | grep 3000 - Node.js のバージョンを確認:
node --version(22 以上が必須)
まとめ
systemd で OpenClaw サービスを管理することで、エンタープライズグレードのサービス信頼性が得られます——自動起動、クラッシュ自動復旧、一元化されたログ管理。セキュリティ強化オプションとリソース制限を組み合わせることで、この設定は本番環境での長期安定運用に適しています。