2015年8月10日月曜日

[CentOS7] サービスの一覧を見たり、起動・停止したい


CentOS7のサービスは、systemctl コマンドで管理します。

全てのサービスの設定ファイルは、/usr/lib/systemd/system ディレクトリにあります。
ランレベルに応じた個別のサービスの設定ファイルは、ランレベルごとのディレクトリに格納されて、/usr/lib/systemd/system ディレクトリのファイルにシンボリック・リンクされています。

ランレベルに応じたディレクトリは、/etc/systemd/system にあります。
# ls -l /etc/systemd/system/
合計 4
drwxr-xr-x. 2 root root   30  9月 17 09:18 basic.target.wants
lrwxrwxrwx. 1 root root   44  9月 16 22:16 dbus-org.freedesktop.Avahi.service -> /usr/lib/systemd/system/avahi-daemon.service
lrwxrwxrwx. 1 root root   46  9月 16 22:16 dbus-org.freedesktop.NetworkManager.service -> /usr/lib/systemd/system/NetworkManager.service
lrwxrwxrwx. 1 root root   57  9月 16 22:16 dbus-org.freedesktop.nm-dispatcher.service -> /usr/lib/systemd/system/NetworkManager-dispatcher.service
lrwxrwxrwx. 1 root root   41  9月 17 11:13 default.target -> /usr/lib/systemd/system/multi-user.target
drwxr-xr-x. 2 root root   85  9月 16 22:16 default.target.wants
drwxr-xr-x. 2 root root   31  9月 16 22:16 getty.target.wants
drwxr-xr-x. 2 root root 4096  9月 16 22:17 multi-user.target.wants
drwxr-xr-x. 2 root root   80  9月 16 22:17 sockets.target.wants
drwxr-xr-x. 2 root root   33  9月 16 22:17 sysinit.target.wants
drwxr-xr-x. 2 root root   43  9月 16 22:16 system-update.target.wants

ランレベル3のディレクトリは以下のとおり。
# ls -l /etc/systemd/system/multi-user.target.wants
合計 0
lrwxrwxrwx. 1 root root 46  9月 16 22:16 NetworkManager.service -> /usr/lib/systemd/system/NetworkManager.service
lrwxrwxrwx. 1 root root 38  9月 16 22:17 auditd.service -> /usr/lib/systemd/system/auditd.service
lrwxrwxrwx. 1 root root 44  9月 16 22:16 avahi-daemon.service -> /usr/lib/systemd/system/avahi-daemon.service
lrwxrwxrwx. 1 root root 37  9月 16 22:16 crond.service -> /usr/lib/systemd/system/crond.service
lrwxrwxrwx. 1 root root 42  9月 16 22:17 irqbalance.service -> /usr/lib/systemd/system/irqbalance.service
lrwxrwxrwx. 1 root root 37  9月 16 22:16 kdump.service -> /usr/lib/systemd/system/kdump.service
lrwxrwxrwx. 1 root root 39  9月 16 22:17 postfix.service -> /usr/lib/systemd/system/postfix.service
lrwxrwxrwx. 1 root root 40  9月 16 22:16 remote-fs.target -> /usr/lib/systemd/system/remote-fs.target
lrwxrwxrwx. 1 root root 39  9月 16 22:16 rsyslog.service -> /usr/lib/systemd/system/rsyslog.service
lrwxrwxrwx. 1 root root 36  9月 16 22:17 sshd.service -> /usr/lib/systemd/system/sshd.service
lrwxrwxrwx. 1 root root 37  9月 16 22:17 tuned.service -> /usr/lib/systemd/system/tuned.service

サービスの設定ファイルの内容は以下のとおりです。
# cat /etc/systemd/system/multi-user.target.wants/sshd.service
[Unit]
Description=OpenSSH server daemon
After=syslog.target network.target auditd.service

[Service]
EnvironmentFile=/etc/sysconfig/sshd
ExecStartPre=/usr/sbin/sshd-keygen
ExecStart=/usr/sbin/sshd -D $OPTIONS
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
RestartSec=42s

[Install]
WantedBy=multi-user.target


起動中のサービス一覧を見たい場合は、以下のようにコマンドを実行します。
# systemctl list-units --type=service
定義されているサービスを全部見たい場合は、以下のようにコマンドを実行します。
# systemctl list-unit-files --type=service
サービスの状態を見たい場合は、以下のようにコマンドを実行します。
# systemctl status sshd
サービスを起動したい場合は、以下のようにコマンドを実行します。
# systemctl start sshd
サービスを停止したい場合は、以下のようにコマンドを実行します。
# systemctl stop sshd
サービスの自動起動を無効にしたい場合は、以下のようにコマンドを実行します。
# systemctl disable sshd
サービスの自動起動を有効にしたい場合は、以下のようにコマンドを実行します。
# systemctl enable sshd

詳しくは、以下のサイトを参照してください。