systemctlでLinuxサービスを管理する

systemctlでLinuxサービスを管理する Systemdは、最近のほとんどのLinuxディストリビューションでデフォルトのinitシステムです。systemctlコマンドは、サービス管理の主要なツールです。この記事では、最も一般的な操作について説明します。 1. サービスステータスの確認 サービスが実行中かどうかを確認する: systemctl status nginx 出力には、アクティブ状態、メインPID、メモリ使用量、最近のログエントリが含まれます。緑色の active running はサービスが正常に動作していることを示します。 実行中のサービスをすべて一覧表示する: systemctl list-units --type=service --state=running 2. サービスの起動と停止 サービスをすぐに起動する: systemctl start nginx 実行中のサービスを停止する: systemctl stop nginx サービスを再起動する: systemctl restart nginx 完全な再起動なしで設定を再読み込みする: systemctl reload nginx 3. サービスの有効化と無効化 サービスを有効にして、起動時に自動的に開始するようにする: systemctl enable nginx サービスを無効にして、起動時に開始しないようにする: systemctl disable nginx 1つのコマンドで有効化と起動を同時に行う: systemctl enable --now nginx 4. journalctlでログを確認する Systemdはjournaldを通じてログを収集します。特定のサービスのログを確認する: journalctl -u nginx ログをリアルタイムで追跡する: journalctl -u nginx -f 最近の50件のみ表示する: ...

2026年6月11日 · 1 分

systemd Timersで定期タスクを管理する

systemd Timersで定期タスクを管理する Linuxシステムでは、定期タスクはcronと関連付けられることが多いです。cronはシンプルで広く利用可能であり、今日でも有用です。しかし、systemdを使用する最近のLinuxディストリビューションには、別の強力な選択肢があります:systemd timers。 systemd timerは、特定の時刻、起動後、または定期的な間隔でサービスを実行できます。従来のcronジョブと比較して、systemd timersはシステムサービスマネージャーとの統合が良く、ログ機能が優秀で、スケジューリングの柔軟性も高くなります。 この記事では、systemd timersの仕組みと設定方法を説明します。 systemd Timerとは? systemd timerは、別のsystemdユニットをいつアクティブ化するかを制御するユニットファイルです。多くの場合、timerは.serviceユニットをアクティブ化します。 典型的な定期タスクには2つのファイルが必要です: /etc/systemd/system/example-task.service /etc/systemd/system/example-task.timer .serviceファイルは実行内容を定義します。.timerファイルは実行時刻を定義します。この分離により、systemd timersは整理されやすく管理も簡単です。 簡単な例:日次バックアップ 毎日バックアップスクリプトを実行する場合を考えます。 まずスクリプトを作成します: sudo nano /usr/local/bin/daily-backup.sh 例: #!/bin/bash echo "Backup started at Thu Jun 11 11:24:12 2026" >> /var/log/daily-backup.log tar -czf /tmp/etc-backup.tar.gz /etc echo "Backup finished at Thu Jun 11 11:24:12 2026" >> /var/log/daily-backup.log 実行権限を設定します: sudo chmod +x /usr/local/bin/daily-backup.sh Serviceユニットの作成 サービスファイルを作成します: sudo nano /etc/systemd/system/daily-backup.service 内容: [Unit] Description=Daily backup task [Service] Type=oneshot ExecStart=/usr/local/bin/daily-backup.sh Type=oneshotは、サービスがコマンドを実行して終了することを意味します。バックアップ、クリーンアップ、レポートなどの一次性タスクに適しています。 ...

2026年6月11日 · 1 分