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.