LinuCレベル2 201試験の例題と解説
2.01.1ブートプロセスとGRUB
LinuCレベル2 201試験の出題範囲から「2.01.1 ブートプロセスとGRUB」についての例題を解いてみます。今回はsystemctlの使用方法に関する例題です。
例題
Linuxシステムを起動した際に、httpdサービスを自動的に起動するようにしたい。
実行するコマンドとして、正しいものを選択してください。
- systemctl start httpd.service
- systemctl enable httpd.service
- systemctl reload httpd.service
- systemctl restart httpd.service
※この例題は実際の試験問題とは異なります。
解答と解説
正解は、「2. systemctl enable httpd.service」です。
systemctlは、systemdサービスマネージャの管理を行うためのコマンドです。
systemdは、Linuxオペレーティングシステムのためのシステムおよびサービスのマネージャです。Linuxを起動すると、systemdが初期プロセスとして起動し、そこから様々なサービスが起動されます。
systemctlコマンドを使用すると、systemdから起動されるサービスの制御を行うことができます。systemctlコマンドのサービス制御に関する主な使用方法を見てみましょう。
■サービスを起動する
# systemctl start httpd.service
この例では、httpdサービスを起動しています。
■サービスの状態を確認する
systemctl status httpd.service
● httpd.service - The Apache HTTP Server
Loaded: loaded (/etc/systemd/system/httpd.service; disabled; vendor preset: disabled)
Active: active (running) since Thu 2023-03-02 15:12:12 JST; 1s ago
Docs: man:httpd.service(8)
Main PID: 13240 (httpd)
Status: "Started, listening on: port 80"
Tasks: 213 (limit: 5885)
Memory: 22.8M
CPU: 108ms
CGroup: /system.slice/httpd.service
├─13240 /usr/sbin/httpd -DFOREGROUND
├─13241 /usr/sbin/httpd -DFOREGROUND
├─13242 /usr/sbin/httpd -DFOREGROUND
├─13243 /usr/sbin/httpd -DFOREGROUND
└─13244 /usr/sbin/httpd -DFOREGROUND
:
:
この例では、httpdサービスの状態を確認しています。httpdサービスが起動されていることや、サービスのプロセス番号等を確認することができます。
■サービスが動作中であるかどうかを調べる
# systemctl is-active httpd.service
active
この例では、httpdサービスが起動中であるかどうかを調べています。active と表示されているので、起動中であることがわかります。
サービスが停止している時は、inactive と表示されます。
# systemctl is-active httpd.service
inactive
■サービスを停止する
# systemctl stop httpd.service
この例では、httpdサービスを停止しています。
■サービスを再起動する。
# systemctl restart httpd.service
この例では、httpdサービスを再起動しています。
■サービスをリロードする。
# systemctl reload httpd.service
この例では、httpdサービスをリロードしています。httpdの設定がリロードされます。
■システム起動時にサービスが自動起動されるようにする
# systemctl enable httpd.service
Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /etc/systemd/system/httpd.service.
この例では、Linuxシステム起動時にhttpdサービスが自動起動されるように設定しています。設定と同時にサービスを起動する場合、--nowオプションを指定します。
# systemctl enable --now httpd.service
Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /etc/systemd/system/httpd.service.
■システム起動時にサービスが自動起動されるかどうかを調べる
# systemctl is-enabled httpd.service
enabled
本例では、httpdサービスが、Linuxシステム起動時に自動起動されるかどうかを調べています。enabled と表示されているので、自動起動される設定になっていることがわかります。
自動起動が無効になって時は、disabled と表示されます。
# systemctl is-enabled httpd.service
disabled
例題の選択肢を確認してみましょう。
1.systemctl start httpd.service
誤りです。
systemctl start は、指定したサービスを起動するコマンドです。
2.systemctl enable httpd.service
正解です。
systemctl enable は、指定したサービスをLinuxシステム起動時に自動起動するように設定することができます。
3.systemctl reload httpd.service
誤りです。
systemctl reload は、指定したサービスをリロードするコマンドです。
4.systemctl restart httpd.service
誤りです。
systemctl restart は、指定したサービスを再起動するコマンドです。
systemctlは、サービスの制御だけでなく、systemdに関する様々な制御を行うことができます。systemctlの使用方法を確認して、systemdの管理を行う方法を把握しておきましょう。
例題作成者
株式会社デージーネット OSS研究室 大野 公善