systemdでのサービス制御・超基本編

 Red Hat Enterprise Linux 7(やCentOS 7など)で導入されたsystemdで、サービスの開始/停止やシステム起動後の自動起動などを設定する手順メモ。

 systemdでは、「systemctl」というコマンドでサービスの制御を行う。サービスを開始/停止するには「start」および「stop」サブコマンドを使用する。また、「status」サブコマンドで稼働状況をチェックできる。

systemctl start <サービス名>
systemctl stop <サービス名>
systemctl status <サービス名>

 システムの起動時にサービスを自動起動させるには「enable」サブコマンドを、自動起動させないように設定するには「disable」サブコマンドを使う。

systemctl enable <サービス名>
systemctl disable <サービス名>

 稼働中のサービスの確認は、「list-units」サブコマンドで行える。サブコマンドを省略すると「list-units」サブコマンドが実行されるので、引数無しでsystemctlコマンドを実行しても同じ結果が得られる。

# systemctl
UNIT                        LOAD   ACTIVE SUB       DESCRIPTION
proc-sys...t_misc.automount loaded active waiting   Arbitrary Executable File Fo
sys-devi...-sda-sda1.device loaded active plugged   VBOX_HARDDISK
  :
  :

 このうち、「.service」で終わっているものがサービスとなる。また、「-t service」オプション付きでsystemctlコマンドを実行することでサービスのみを一覧表示できる。

$ systemctl -t service

 また、「list-units」サブコマンドでは「disabled」に設定されているサービスは表示されない。これらも含めて確認するには、「list-unit-files」サブコマンドを実行する。

$ systemctl list-unit-files