systemdでは、サービスの起動や停止などの操作に、systemctlコマンドを使います。CentOS 6までで使われていたserviceコマンドは実質的に廃止され、systemctlコマンドで操作することになります。

まず、どのようなサービスがあるか一覧で表示して見ましょう。Unitの一覧を表示するには、systemctl list-unit-filesコマンドを実行します。Unitの中からサービスだけを表示するには「-type=service」オプションを指定します。

# systemctl list-unit-files --type=service
UNIT FILE                                   STATE
auditd.service                              enabled
autovt@.service                             disabled
blk-availability.service                    disabled
brandbot.service                            static
console-getty.service                       disabled
console-shell.service                       disabled
container-getty@.service                    static
cpupower.service                            disabled
crond.service                               enabled
dbus-org.fedoraproject.FirewallD1.service   enabled
 ~ 省略 ~

CentOS 6の「chkconfig-list」コマンドに相当します。

サービスの停止

サービスを停止するには、systemctl stopコマンドにUnit名を指定してroot権限で実行します。例えば、「postgresql-9.5.service」を停止するには次のように実行します。

# systemctl stop postgresql-9.5.service

CentOS 6までの「service サービス名 stop」に相当します。なお、Unit名のうち、「.service」の部分は省略してもかまいません。
systemctl stopコマンドを実行しても、そのUnitに依存しているUnitが動いていると、停止できません。仮に、依存しているUnitが動いている状態で停止しようとしてもエラーとなり、失敗します。

サービスの起動

サービスを起動するには、systemctl startコマンドにUnit名を指定して実行します。

# systemctl start  postgresql-9.5.service

CentOS 6までの「service サービス名 start」に相当します。

再起動も同様に、systemctl restartコマンドにUnit名を指定して実行します。

# systemctl restart http.service

CentOS 6までの「service サービス名 restart」に相当します。

サービスの自動起動

OSが起動するときにサービスが自動的に起動するように、あるいはしないように設定するのも、systemctlコマンドを使います。CentOS 6までのchkconfigコマンドに相当します。

例えば、「postgresql-9.5.service」を自動起動させないようにするには以下のように実行します。

# systemctl disable postgresql-9.5.service
Removed symlink /etc/systemd/system/multi-user.target.wants/postgresql-9.5.service.

自動起動させるようには、以下のように実行します。

# systemctl enable postgresql-9.5.service
Created symlink from /etc/systemd/system/multi-user.target.wants/postgresql-9.5.service to /usr/lib/systemd/system/postgresql-9.5.service.