Linux管理・運用の基本
システム管理者のための実践ガイド
システム管理者のための実践ガイド
systemctl
コマンドの基本的な使い方サービスがうまく動かない、あるいは起動させたいといった状況で最もよく使うのがsystemctl
コマンドです。
サービスを起動するにはstart
オプションを使います。
sudo systemctl start <サービス名>
例:Apache(httpd)サービスを起動する
sudo systemctl start httpd
稼働中のサービスを停止するにはstop
オプションを使います。
sudo systemctl stop <サービス名>
例:Apache(httpd)サービスを停止する
sudo systemctl stop httpd
設定ファイルの変更を反映させたい場合など、サービスを再起動するにはrestart
オプションを使います。サービスが停止している場合は起動します。
sudo systemctl restart <サービス名>
例:Apache(httpd)サービスを再起動する
sudo systemctl restart httpd
設定ファイルを再読み込みするだけでよい場合はreload
オプションも利用できます。これはサービスを停止しないため、サービス断なく設定を反映できるメリットがあります。ただし、reload
に対応していないサービスもあります。
sudo systemctl reload <サービス名>
サービスが起動しているか、エラーが発生していないかなどを確認するにはstatus
オプションを使います。
systemctl status <サービス名>
例:Apache(httpd)サービスの状態を確認する
systemctl status httpd
このコマンドを実行すると、サービスがactive (running)であれば正常に動作しており、エラーログなども表示されるため、問題発生時の原因究明に役立ちます。
システムを再起動した際に、特定のサービスを自動的に起動させたい場合は、enable
オプションを使います。
sudo systemctl enable <サービス名>
例:Apache(httpd)サービスを自動起動する設定にする
sudo systemctl enable httpd
このコマンドは、システムの起動時にサービスが自動的に起動するよう、シンボリックリンクを作成します。
自動起動を停止させたい場合はdisable
オプションを使います。
sudo systemctl disable <サービス名>
例:Apache(httpd)サービスの自動起動設定を解除する
sudo systemctl disable httpd
サービスが自動起動に設定されているかを確認するにはis-enabled
オプションを使います。
systemctl is-enabled <サービス名>
有効な場合はenabled
、無効な場合はdisabled
と表示されます。
システムに登録されているすべてのサービスの自動起動設定を一覧で確認したい場合は、以下のコマンドが便利です。
systemctl list-unit-files --type=service
このコマンドで各サービスのSTATE
(enabled
やdisabled
など)を確認できます。
ここでは、本記事で紹介したsystemctl
コマンドの主要なオプションをまとめます。
コマンド | 役割 |
---|---|
sudo systemctl start <サービス名> |
サービスを起動する |
sudo systemctl stop <サービス名> |
サービスを停止する |
sudo systemctl restart <サービス名> |
サービスを再起動する |
sudo systemctl reload <サービス名> |
サービスの設定を再読み込みする(対応サービスのみ) |
systemctl status <サービス名> |
サービスの状態を確認する |
sudo systemctl enable <サービス名> |
サービスの自動起動を有効にする |
sudo systemctl disable <サービス名> |
サービスの自動起動を無効にする |
systemctl is-enabled <サービス名> |
サービスの自動起動設定を確認する |
systemctl list-unit-files --type=service |
全サービスの自動起動設定一覧を表示 |
サービス名が分からない
現在システムで動いているサービスの一覧を確認したい場合は、systemctl list-units --type=service
コマンドが役立ちます。
サービスが起動しない!何が原因?
systemctl status <サービス名>
を実行しましょう。エラーメッセージが表示されるはずです。特に赤字で表示される行は重要なヒントになります。journalctl -u <サービス名>
コマンドが非常に有効です。サービスの起動から現在までのログが表示されます。/var/log/messages
や/var/log/syslog
、各サービスの専用ログなど)も確認してください。自動起動設定したはずなのに再起動したら動いてない…
systemctl is-enabled <サービス名>
で「enabled」になっているか確認してください。After=
やRequires=
など)が設定されている場合があります。もし依存関係にあるサービスが起動に失敗していると、本体のサービスも起動できません。systemctl status
やjournalctl -u
で依存関係に関するエラーが出ていないか確認しましょう。本記事では、Linuxのサービス管理に不可欠なsystemdとsystemctl
コマンドの基本的な使い方を解説しました。サービスの起動・停止・再起動、そして自動起動の設定をマスターすることで、よりスムーズなシステム運用が可能になります。
この記事がsystemdによるサービス管理について理解を深める一助となれば幸いです。
ご覧いただきありがとうございました。
次回は、ファイル検索のfind
コマンドとlocate
コマンドの使い分けについて解説します。