Claude Codeでsystemd設定ファイルを作成する方法
- 作成日 2026.05.29
- その他
Claude Codeを使うと、Linuxサーバーのsystemd設定ファイルを効率よく作成できます。Node.js、Python、Go、Dockerなど様々なアプリケーション向けのUnitファイル生成、ログ設定、自動再起動設定、セキュリティ強化までまとめて整理できます。この記事では、Claude Codeでsystemd設定ファイルを作成する具体的な方法を解説します。
- 1. systemdとは何か
- 2. Claude Codeでsystemdファイルを生成する基本
- 3. 基本的なsystemd設定ファイル
- 4. Node.js向けsystemd設定を作る
- 5. Pythonアプリ向けsystemd設定
- 6. Gunicorn運用向け設定
- 7. Dockerコンテナ管理をsystemd化する
- 8. systemdタイマーもClaude Codeで作れる
- 9. セキュリティを考慮したsystemd設定
- 10. systemd運用で重要な確認コマンド
- 11. Claude Codeでsystemdレビューを行う
- 12. systemdトラブル調査を効率化する
- 13. Claude Codeに依頼するときのコツ
- 14. まとめ
systemdとは何か
systemdは、Linuxでサービスを管理する仕組みです。
主な用途は以下です。
・サーバープロセス起動
・自動起動
・再起動管理
・ログ管理
・依存関係制御
・異常終了時の復旧
systemdを使うことで、アプリケーションを安定運用しやすくなります。
例えばNode.jsアプリを直接起動するだけでは、SSH切断時に停止したり、サーバー再起動後に自動復旧できません。
systemd管理にすると、次のような運用が可能になります。
・サーバー起動時に自動起動
・異常終了時に自動再起動
・journalctlでログ確認
・systemctlで状態管理
Claude Codeでsystemdファイルを生成する基本
Claude Codeには、実行環境や要件を具体的に伝えることが重要です。
悪い例です。
systemd作って良い例です。
Ubuntu 22.04でNode.jsアプリをsystemd管理したいです。
条件:
・Node.js 20
・/var/www/app に配置
・自動再起動
・サーバー起動時に自動起動
・ログはjournalctlで確認
・実行ユーザーはubuntu
・本番環境このように条件を明確にすると、運用向けのsystemdファイルを生成しやすくなります。
基本的なsystemd設定ファイル
Claude Codeが生成する代表的な例です。
[Unit]
Description=Node.js Application
After=network.target
[Service]
Type=simple
User=ubuntu
WorkingDirectory=/var/www/app
ExecStart=/usr/bin/node server.js
Restart=always
RestartSec=5
Environment=NODE_ENV=production
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target保存場所です。
/etc/systemd/system/app.service設定反映コマンドです。
sudo systemctl daemon-reload
sudo systemctl enable app.service
sudo systemctl start app.service状態確認です。
sudo systemctl status app.serviceログ確認です。
journalctl -u app.service -fNode.js向けsystemd設定を作る
Node.js運用では、自動再起動設定が重要です。
Claude Codeには次のように依頼できます。
Node.js APIサーバー用のsystemd設定を作成してください。
条件:
・Express
・ポート3000
・pm2は使わない
・メモリ不足時の再起動対策
・異常終了時に自動再起動
・ログ確認しやすくしたい生成例です。
[Unit]
Description=Express API Server
After=network.target
[Service]
Type=simple
User=ubuntu
WorkingDirectory=/var/www/api
ExecStart=/usr/bin/node server.js
Restart=always
RestartSec=3
Environment=NODE_ENV=production
Environment=PORT=3000
LimitNOFILE=65535
StandardOutput=journal
StandardError=journal
SyslogIdentifier=express-api
[Install]
WantedBy=multi-user.targetLimitNOFILEを設定すると、大量接続時のファイルディスクリプタ不足対策になります。
Pythonアプリ向けsystemd設定
Pythonアプリでもsystemd管理がよく使われます。
Claude Codeへの依頼例です。
Python FastAPIアプリ用のsystemd設定を作成してください。
条件:
・uvicorn利用
・venv使用
・自動再起動
・Ubuntu環境
・ログ確認可能生成例です。
[Unit]
Description=FastAPI Application
After=network.target
[Service]
User=ubuntu
Group=ubuntu
WorkingDirectory=/var/www/fastapi
ExecStart=/var/www/fastapi/venv/bin/uvicorn main:app --host 0.0.0.0 --port 8000
Restart=always
RestartSec=5
Environment=PYTHONUNBUFFERED=1
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.targetvenv環境のPythonを指定するのがポイントです。
Gunicorn運用向け設定
DjangoやFlaskではGunicornを使うケースが多いです。
Claude Codeには次のように依頼します。
Django + Gunicorn用のsystemd設定を作成してください。
条件:
・Ubuntu
・nginx連携
・socket利用
・再起動対応生成例です。
[Unit]
Description=Gunicorn daemon
After=network.target
[Service]
User=www-data
Group=www-data
WorkingDirectory=/var/www/djangoapp
ExecStart=/var/www/djangoapp/venv/bin/gunicorn \
--workers 3 \
--bind unix:/run/gunicorn.sock \
config.wsgi:application
Restart=always
[Install]
WantedBy=multi-user.targetNginxとUNIX socket連携するとパフォーマンス改善につながります。
Dockerコンテナ管理をsystemd化する
Docker単体起動をsystemd管理するケースもあります。
Claude Codeへの依頼例です。
Dockerコンテナをsystemdで管理したいです。
条件:
・サーバー再起動時に自動起動
・コンテナ異常停止時に復旧
・ログ確認可能生成例です。
[Unit]
Description=Docker App Container
After=docker.service
Requires=docker.service
[Service]
Restart=always
ExecStart=/usr/bin/docker start -a myapp
ExecStop=/usr/bin/docker stop -t 10 myapp
[Install]
WantedBy=multi-user.targetDocker Compose運用の場合はcompose restartなども組み込めます。
systemdタイマーもClaude Codeで作れる
Cronの代わりにsystemd timerを使うケースも増えています。
Claude Codeには次のように依頼できます。
毎日2時にバックアップを実行するsystemd timerを作成してください。
ログ確認できる構成にしてください。service側です。
[Unit]
Description=Daily Backup
[Service]
Type=oneshot
ExecStart=/usr/local/bin/backup.shtimer側です。
[Unit]
Description=Run backup daily
[Timer]
OnCalendar=*-*-* 02:00:00
Persistent=true
[Install]
WantedBy=timers.target有効化です。
sudo systemctl enable backup.timer
sudo systemctl start backup.timer確認です。
systemctl list-timersセキュリティを考慮したsystemd設定
systemdではセキュリティ強化も可能です。
Claude Codeには次のように依頼できます。
本番環境向けにsystemd設定をセキュア化してください。
不要な権限を制限し、侵害時リスクを減らしたいです。例です。
NoNewPrivileges=true
PrivateTmp=true
ProtectSystem=full
ProtectHome=true
ReadWritePaths=/var/www/app/storageこれにより、サービスごとの権限分離を強化できます。
systemd運用で重要な確認コマンド
Claude Codeには運用確認コマンドもまとめてもらえます。
依頼例です。
systemd運用でよく使う確認コマンドを整理してください。
障害対応向けにまとめてください。代表例です。
状態確認です。
systemctl status app.serviceログ確認です。
journalctl -u app.service -f再起動です。
systemctl restart app.service自動起動確認です。
systemctl is-enabled app.service失敗サービス確認です。
systemctl --failed設定確認です。
systemctl cat app.serviceClaude Codeでsystemdレビューを行う
既存設定のレビューにもClaude Codeは便利です。
依頼例です。
このsystemd設定をレビューしてください。
確認したい点:
・本番運用で危険な設定
・自動再起動不足
・ログ設定
・セキュリティ
・メモリ不足対策
・権限設定特に以下の問題を見つけやすくなります。
・root実行
・Restart未設定
・WorkingDirectory漏れ
・ExecStartミス
・環境変数漏れ
・ログ未設定
・依存サービス不足
systemdトラブル調査を効率化する
systemdトラブルでは、journalctl分析が重要です。
Claude Codeには次のように依頼できます。
このjournalctlログを分析してください。
systemd起動失敗原因を特定し、確認すべきポイントを優先順位付きで整理してください。
よくある原因です。
・ファイルパス間違い
・権限不足
・実行ユーザー問題
・venvパスミス
・ポート競合
・環境変数不足
・ExecStartエラー
ログ貼り付けだけでも、かなり原因を絞り込みやすくなります。
Claude Codeに依頼するときのコツ
systemd生成では、次の情報を具体化すると精度が上がります。
・OS種類
・アプリ種類
・実行ユーザー
・配置パス
・起動コマンド
・ログ要件
・自動再起動要件
・Docker利用有無
・セキュリティ要件
特に重要なのは、実際の起動コマンドを明確にすることです。
例えば以下です。
node server.jsまたは、
gunicorn config.wsgi:application実行方法が曖昧だと、systemd設定も不正確になりやすいです。
まとめ
Claude Codeを使うと、systemd設定ファイル作成、レビュー、トラブル調査、セキュリティ強化を効率化できます。
特に役立つ用途は以下です。
・Node.js運用
・Python運用
・Docker管理
・Gunicorn設定
・systemd timer作成
・ログ管理
・障害対応
・セキュリティ強化
Linuxサーバー運用では、systemdを正しく設定することで安定性が大きく向上します。
Claude Codeを活用すると、運用に必要な設定や確認手順を短時間で整理しやすくなります。
-
前の記事
Claude CodeでNginx設定を自動生成する方法 | Nginx設定を短時間で整理 2026.05.28
-
次の記事
UbuntuでDocker起動時にポート競合した時の解決方法 2026.06.01
コメントを書く