2014年8月19日火曜日

CentOS7のミニマムインストールでどんなサービスが起動するのかをチェックしてみる

さてさてどんな感じかな?


CentOS7をミニマムインストール(*1)したわけだけど、まず気になるのはデフォルトでどんなサービスが起動しているのかということ。それを調べてみよう。

ってことで下記の感じでみてみるわけだけども……

# chkconfig --list

注記: この出力は SysV サービスのみであり、ネイティブな systemd のサービスは含まれていません。
      systemd services. SysV 設定のデータはネイティブな systemd の設定によって上書きされます。
      systemd サービスを一覧表示するには 'systemctl list-unit-files' を使用してください。
      特定のターゲットにおいて有効化されているサービスを確認するには、
      'systemctl list-dependencies [target]' 。

iprdump         0:off 1:off 2:on 3:on 4:on 5:on 6:off
iprinit         0:off 1:off 2:on 3:on 4:on 5:on 6:off
iprupdate       0:off 1:off 2:on 3:on 4:on 5:on 6:off
netconsole      0:off 1:off 2:off 3:off 4:off 5:off 6:off
network         0:off 1:off 2:on 3:on 4:on 5:on 6:off
vboxadd         0:off 1:off 2:on 3:on 4:on 5:on 6:off
vboxadd-service 0:off 1:off 2:on 3:on 4:on 5:on 6:off
vboxadd-x11     0:off 1:off 2:off 3:on 4:off 5:on 6:off

おお、そうだった。「chkconfig」コマンドは非推奨なんだよね。ってことで、ご指定の通り「systemctl list-unit-files」をタイプしてみる。

# systemctl list-unit-files
UNIT FILE                                   STATE
proc-sys-fs-binfmt_misc.automount           static
dev-hugepages.mount                         static
dev-mqueue.mount                            static
proc-sys-fs-binfmt_misc.mount               static
sys-fs-fuse-connections.mount               static
sys-kernel-config.mount                     static
sys-kernel-debug.mount                      static
tmp.mount                                   disabled
brandbot.path                               disabled
systemd-ask-password-console.path           static
systemd-ask-password-plymouth.path          static
systemd-ask-password-wall.path              static
session-1.scope                             static
auditd.service                              enabled
autovt@.service                             disabled
avahi-daemon.service                        enabled
blk-availability.service                    disabled
brandbot.service                            static
console-getty.service                       disabled
console-shell.service                       disabled
cpupower.service                            disabled
crond.service                               enabled
dbus-org.fedoraproject.FirewallD1.service   enabled
dbus-org.freedesktop.Avahi.service          enabled
dbus-org.freedesktop.hostname1.service      static
dbus-org.freedesktop.locale1.service        static
dbus-org.freedesktop.login1.service         static
dbus-org.freedesktop.machine1.service       static
dbus-org.freedesktop.NetworkManager.service enabled
dbus-org.freedesktop.nm-dispatcher.service  enabled
dbus-org.freedesktop.timedate1.service      static
dbus.service                                static
debug-shell.service                         disabled
dm-event.service                            disabled
dnsmasq.service                             disabled
dracut-cmdline.service                      static
dracut-initqueue.service                    static
dracut-mount.service                        static
dracut-pre-mount.service                    static
dracut-pre-pivot.service                    static
dracut-pre-trigger.service                  static
dracut-pre-udev.service                     static
dracut-shutdown.service                     static
ebtables.service                            disabled
emergency.service                           static
firewalld.service                           enabled
getty@.service                              enabled
halt-local.service                          static
initrd-cleanup.service                      static
initrd-parse-etc.service                    static
initrd-switch-root.service                  static
initrd-udevadm-cleanup-db.service           static
irqbalance.service                          enabled
kdump.service                               enabled
kmod-static-nodes.service                   static
lvm2-lvmetad.service                        disabled
lvm2-monitor.service                        enabled
lvm2-pvscan@.service                        static
messagebus.service                          static
microcode.service                           enabled
NetworkManager-dispatcher.service           enabled
NetworkManager-wait-online.service          disabled
NetworkManager.service                      enabled
plymouth-halt.service                       disabled
plymouth-kexec.service                      disabled
plymouth-poweroff.service                   disabled
plymouth-quit-wait.service                  disabled
plymouth-quit.service                       disabled
plymouth-read-write.service                 disabled
plymouth-reboot.service                     disabled
plymouth-start.service                      disabled
plymouth-switch-root.service                static
polkit.service                              static
postfix.service                             enabled
quotaon.service                             static
rc-local.service                            static
rdisc.service                               disabled
rescue.service                              static
rhel-autorelabel-mark.service               static
rhel-autorelabel.service                    static
rhel-configure.service                      static
rhel-dmesg.service                          disabled
rhel-domainname.service                     disabled
rhel-import-state.service                   static
rhel-loadmodules.service                    static
rhel-readonly.service                       static
rsyslog.service                             enabled
serial-getty@.service                       static
sshd-keygen.service                         static
sshd.service                                enabled
sshd@.service                               static
systemd-ask-password-console.service        static
systemd-ask-password-plymouth.service       static
systemd-ask-password-wall.service           static
systemd-backlight@.service                  static
systemd-binfmt.service                      static
systemd-fsck-root.service                   static
systemd-fsck@.service                       static
systemd-halt.service                        static
systemd-hibernate.service                   static
systemd-hostnamed.service                   static
systemd-hybrid-sleep.service                static
systemd-initctl.service                     static
systemd-journal-flush.service               static
systemd-journald.service                    static
systemd-kexec.service                       static
systemd-localed.service                     static
systemd-logind.service                      static
systemd-machined.service                    static
systemd-modules-load.service                static
systemd-nspawn@.service                     disabled
systemd-poweroff.service                    static
systemd-quotacheck.service                  static
systemd-random-seed.service                 static
systemd-readahead-collect.service           enabled
systemd-readahead-done.service              static
systemd-readahead-drop.service              enabled
systemd-readahead-replay.service            enabled
systemd-reboot.service                      static
systemd-remount-fs.service                  static
systemd-shutdownd.service                   static
systemd-suspend.service                     static
systemd-sysctl.service                      static
systemd-timedated.service                   static
systemd-tmpfiles-clean.service              static
systemd-tmpfiles-setup-dev.service          static
systemd-tmpfiles-setup.service              static
systemd-udev-settle.service                 static
systemd-udev-trigger.service                static
systemd-udevd.service                       static
systemd-update-utmp-runlevel.service        static
systemd-update-utmp.service                 static
systemd-user-sessions.service               static
systemd-vconsole-setup.service              static
teamd@.service                              static
tuned.service                               enabled
wpa_supplicant.service                      disabled
-.slice                                     static
machine.slice                               static
system.slice                                static
user.slice                                  static
avahi-daemon.socket                         enabled
dbus.socket                                 static
dm-event.socket                             enabled
lvm2-lvmetad.socket                         enabled
sshd.socket                                 disabled
syslog.socket                               static
systemd-initctl.socket                      static
systemd-journald.socket                     static
systemd-shutdownd.socket                    static
systemd-udevd-control.socket                static
systemd-udevd-kernel.socket                 static
basic.target                                static
bluetooth.target                            static
cryptsetup.target                           static
ctrl-alt-del.target                         disabled
default.target                              enabled
emergency.target                            static
final.target                                static
getty.target                                static
graphical.target                            disabled
halt.target                                 disabled
hibernate.target                            static
hybrid-sleep.target                         static
initrd-fs.target                            static
initrd-root-fs.target                       static
initrd-switch-root.target                   static
initrd.target                               static
kexec.target                                disabled
local-fs-pre.target                         static
local-fs.target                             static
multi-user.target                           enabled
network-online.target                       static
network.target                              static
nss-lookup.target                           static
nss-user-lookup.target                      static
paths.target                                static
poweroff.target                             disabled
printer.target                              static
reboot.target                               disabled
remote-fs-pre.target                        static
remote-fs.target                            enabled
rescue.target                               disabled
rpcbind.target                              static
runlevel0.target                            disabled
runlevel1.target                            disabled
runlevel2.target                            disabled
runlevel3.target                            disabled
runlevel4.target                            disabled
runlevel5.target                            disabled
runlevel6.target                            disabled
shutdown.target                             static
sigpwr.target                               static
sleep.target                                static
slices.target                               static
smartcard.target                            static
sockets.target                              static
sound.target                                static
suspend.target                              static
swap.target                                 static
sysinit.target                              static
system-update.target                        static
time-sync.target                            static
timers.target                               static
umount.target                               static
systemd-readahead-done.timer                static
systemd-tmpfiles-clean.timer                static

207 unit files listed.

……と、コレジャナイ感がパナイわけですが、皆様お元気ですか?

ちょっとググってみたところ、これはSystemdで指定可能な「Unit」の一覧を表示させるコマンドだとか。この「Unit」ってのは一言で表現できるほどの理解が伴っていないのだけれども、今のところは「システムを構成する部品」って認識。その部品たるUnitを依存関係等で紐付けて管理/制御することで、システムとして動作するってイメージは持った。

先のコマンドではそのUnitがすべて一覧で表示されているのであんな状態になったわけだ。ためしに「Unit」の中から「Service」に相当するものだけを抽出してみる。

UNIT FILE                                   STATE
auditd.service                              enabled
autovt@.service                             disabled
avahi-daemon.service                        enabled
blk-availability.service                    disabled
brandbot.service                            static
console-getty.service                       disabled
console-shell.service                       disabled
cpupower.service                            disabled
crond.service                               enabled
dbus-org.fedoraproject.FirewallD1.service   enabled
dbus-org.freedesktop.Avahi.service          enabled
dbus-org.freedesktop.hostname1.service      static
dbus-org.freedesktop.locale1.service        static
dbus-org.freedesktop.login1.service         static
dbus-org.freedesktop.machine1.service       static
dbus-org.freedesktop.NetworkManager.service enabled
dbus-org.freedesktop.nm-dispatcher.service  enabled
dbus-org.freedesktop.timedate1.service      static
dbus.service                                static
debug-shell.service                         disabled
dm-event.service                            disabled
dnsmasq.service                             disabled
dracut-cmdline.service                      static
dracut-initqueue.service                    static
dracut-mount.service                        static
dracut-pre-mount.service                    static
dracut-pre-pivot.service                    static
dracut-pre-trigger.service                  static
dracut-pre-udev.service                     static
dracut-shutdown.service                     static
ebtables.service                            disabled
emergency.service                           static
firewalld.service                           enabled
getty@.service                              enabled
halt-local.service                          static
initrd-cleanup.service                      static
initrd-parse-etc.service                    static
initrd-switch-root.service                  static
initrd-udevadm-cleanup-db.service           static
irqbalance.service                          enabled
kdump.service                               enabled
kmod-static-nodes.service                   static
lvm2-lvmetad.service                        disabled
lvm2-monitor.service                        enabled
lvm2-pvscan@.service                        static
messagebus.service                          static
microcode.service                           enabled
NetworkManager-dispatcher.service           enabled
NetworkManager-wait-online.service          disabled
NetworkManager.service                      enabled
plymouth-halt.service                       disabled
plymouth-kexec.service                      disabled
plymouth-poweroff.service                   disabled
plymouth-quit-wait.service                  disabled
plymouth-quit.service                       disabled
plymouth-read-write.service                 disabled
plymouth-reboot.service                     disabled
plymouth-start.service                      disabled
plymouth-switch-root.service                static
polkit.service                              static
postfix.service                             enabled
quotaon.service                             static
rc-local.service                            static
rdisc.service                               disabled
rescue.service                              static
rhel-autorelabel-mark.service               static
rhel-autorelabel.service                    static
rhel-configure.service                      static
rhel-dmesg.service                          disabled
rhel-domainname.service                     disabled
rhel-import-state.service                   static
rhel-loadmodules.service                    static
rhel-readonly.service                       static
rsyslog.service                             enabled
serial-getty@.service                       static
sshd-keygen.service                         static
sshd.service                                enabled
sshd@.service                               static
systemd-ask-password-console.service        static
systemd-ask-password-plymouth.service       static
systemd-ask-password-wall.service           static
systemd-backlight@.service                  static
systemd-binfmt.service                      static
systemd-fsck-root.service                   static
systemd-fsck@.service                       static
systemd-halt.service                        static
systemd-hibernate.service                   static
systemd-hostnamed.service                   static
systemd-hybrid-sleep.service                static
systemd-initctl.service                     static
systemd-journal-flush.service               static
systemd-journald.service                    static
systemd-kexec.service                       static
systemd-localed.service                     static
systemd-logind.service                      static
systemd-machined.service                    static
systemd-modules-load.service                static
systemd-nspawn@.service                     disabled
systemd-poweroff.service                    static
systemd-quotacheck.service                  static
systemd-random-seed.service                 static
systemd-readahead-collect.service           enabled
systemd-readahead-done.service              static
systemd-readahead-drop.service              enabled
systemd-readahead-replay.service            enabled
systemd-reboot.service                      static
systemd-remount-fs.service                  static
systemd-shutdownd.service                   static
systemd-suspend.service                     static
systemd-sysctl.service                      static
systemd-timedated.service                   static
systemd-tmpfiles-clean.service              static
systemd-tmpfiles-setup-dev.service          static
systemd-tmpfiles-setup.service              static
systemd-udev-settle.service                 static
systemd-udev-trigger.service                static
systemd-udevd.service                       static
systemd-update-utmp-runlevel.service        static
systemd-update-utmp.service                 static
systemd-user-sessions.service               static
systemd-vconsole-setup.service              static
teamd@.service                              static
tuned.service                               enabled
wpa_supplicant.service                      disabled

124 unit files listed.

さっきよりは少なくはなったけども、まだまだおおい。リストを見てみると、いわゆる「chkconfig --list」の代わりとしては適さないようだ。

サービスの一覧を出すには?


いわゆる「chkconfig --list」相当の一覧を表示する為にはどうすれば良いのだろうか。前述の通り、「Unit」という概念に切り替わったこともあり単純に対応する訳ではないのだけれど、近いコマンドという意味では「systemctl list-units --type=service」が該当する……のかなぁ……?

UNIT                                                            LOAD   ACTIVE SUB     DESCRIPTION
auditd.service                                                  loaded active running Security Auditing Service
avahi-daemon.service                                            loaded active running Avahi mDNS/DNS-SD Stack
crond.service                                                   loaded active running Command Scheduler
dbus.service                                                    loaded active running D-Bus System Message Bus
firewalld.service                                               loaded active running firewalld - dynamic firewall daemon
getty@tty1.service                                              loaded active running Getty on tty1
iprdump.service                                                 loaded active running LSB: Start the ipr dump daemon
iprinit.service                                                 loaded active running LSB: Start the ipr init daemon
iprupdate.service                                               loaded active running LSB: Start the iprupdate utility
kdump.service                                                   loaded failed failed  Crash recovery kernel arming
kmod-static-nodes.service                                       loaded active exited  Create list of required static device nodes for the current kern
lvm2-lvmetad.service                                            loaded active running LVM2 metadata daemon
lvm2-monitor.service                                            loaded active exited  Monitoring of LVM2 mirrors, snapshots etc. using dmeventd or pro
lvm2-pvscan@8:2.service                                         loaded active exited  LVM2 PV scan on device 8:2
network.service                                                 loaded active exited  LSB: Bring up/down networking
NetworkManager.service                                          loaded active running Network Manager
polkit.service                                                  loaded active running Authorization Manager
postfix.service                                                 loaded active running Postfix Mail Transport Agent
rhel-dmesg.service                                              loaded active exited  Dump dmesg to /var/log/dmesg
rhel-import-state.service                                       loaded active exited  Import network configuration from initramfs
rhel-readonly.service                                           loaded active exited  Configure read-only root support
rsyslog.service                                                 loaded active running System Logging Service
sshd.service                                                    loaded active running OpenSSH server daemon
systemd-fsck-root.service                                       loaded active exited  File System Check on Root Device
systemd-fsck@dev-dis...\x2d4d46\x2dad97\x2d406d259f3fa4.service loaded active exited  File System Check on /dev/disk/by-uuid/39649198-988e-4d46-ad97-4
systemd-journald.service                                        loaded active running Journal Service
systemd-logind.service                                          loaded active running Login Service
systemd-random-seed.service                                     loaded active exited  Load/Save Random Seed
systemd-remount-fs.service                                      loaded active exited  Remount Root and Kernel File Systems
systemd-sysctl.service                                          loaded active exited  Apply Kernel Variables
systemd-tmpfiles-setup-dev.service                              loaded active exited  Create static device nodes in /dev
systemd-tmpfiles-setup.service                                  loaded active exited  Create Volatile Files and Directories
systemd-udev-trigger.service                                    loaded active exited  udev Coldplug all Devices
systemd-udevd.service                                           loaded active running udev Kernel Device Manager
systemd-update-utmp.service                                     loaded active exited  Update UTMP about System Reboot/Shutdown
systemd-user-sessions.service                                   loaded active exited  Permit User Sessions
systemd-vconsole-setup.service                                  loaded active exited  Setup Virtual Console
tuned.service                                                   loaded active running Dynamic System Tuning Daemon
vboxadd-service.service                                         loaded active running LSB: VirtualBox Additions service
vboxadd-x11.service                                             loaded active exited  LSB: VirtualBox Linux Additions kernel modules
vboxadd.service                                                 loaded active exited  LSB: VirtualBox Linux Additions kernel modules

LOAD   = Reflects whether the unit definition was properly loaded.
ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
SUB    = The low-level unit activation state, values depend on unit type.

41 loaded units listed. Pass --all to see loaded but inactive units, too.
To show all installed unit files use 'systemctl list-unit-files'.

これはだいぶ近い気がする。このリスト、現在の状態で起動しているサービスの一覧になるとか。「SUB」の部分が「running」のものがデーモンプロセス(*2)だそうなので、それだけ抜き出してみる。

# systemctl list-units --type=service|grep "running"
auditd.service                                                                            loaded active running Security Auditing Service
avahi-daemon.service                                                                      loaded active running Avahi mDNS/DNS-SD Stack
crond.service                                                                             loaded active running Command Scheduler
dbus.service                                                                              loaded active running D-Bus System Message Bus
firewalld.service                                                                         loaded active running firewalld - dynamic firewall daemon
getty@tty1.service                                                                        loaded active running Getty on tty1
iprdump.service                                                                           loaded active running LSB: Start the ipr dump daemon
iprinit.service                                                                           loaded active running LSB: Start the ipr init daemon
iprupdate.service                                                                         loaded active running LSB: Start the iprupdate utility
lvm2-lvmetad.service                                                                      loaded active running LVM2 metadata daemon
NetworkManager.service                                                                    loaded active running Network Manager
polkit.service                                                                            loaded active running Authorization Manager
postfix.service                                                                           loaded active running Postfix Mail Transport Agent
rsyslog.service                                                                           loaded active running System Logging Service
sshd.service                                                                              loaded active running OpenSSH server daemon
systemd-journald.service                                                                  loaded active running Journal Service
systemd-logind.service                                                                    loaded active running Login Service
systemd-udevd.service                                                                     loaded active running udev Kernel Device Manager
tuned.service                                                                             loaded active running Dynamic System Tuning Daemon
vboxadd-service.service                                                                   loaded active running LSB: VirtualBox Additions service

厳密に「chkconfig --list」と同一ではないっぽいけど、おそらくコレが一番求めていたものだろう。

余計なサービスを止める


先のリストを眺めていると、どうやらいらなさそうなサービスが起動している事に気づく。具体的には、「avahi-daemon.service」、「iprdump.service」、「iprinit.service」、「iprupdate.service」、「postfix.service」あたり。他にもいらなそうなのはあるのだけれど、どこに影響するか読み切れない部分もあり、とりあえずは放っておく。

これらを止めるには「chkconfig FOOBAR off」相当のコマンドが何かというのを調べる必要がある。結論から言えば、「systemctl disabled FOOBAR」とタイプすれば良い。

ためしに実行してみた。一部、Systemdネイティブじゃない(≒SystemV形式の?)サービスがあったようだが、それは自動的に「chkconfig」コマンドが呼び出されていい感じにしてくれるらしい。

# systemctl disable avahi-daemon iprdump iprinit iprupdate postfix
iprdump.service is not a native service, redirecting to /sbin/chkconfig.
Executing /sbin/chkconfig iprdump off
iprinit.service is not a native service, redirecting to /sbin/chkconfig.
Executing /sbin/chkconfig iprinit off
iprupdate.service is not a native service, redirecting to /sbin/chkconfig.
Executing /sbin/chkconfig iprupdate off
rm '/etc/systemd/system/multi-user.target.wants/avahi-daemon.service'
rm '/etc/systemd/system/multi-user.target.wants/postfix.service'
rm '/etc/systemd/system/sockets.target.wants/avahi-daemon.socket'
rm '/etc/systemd/system/dbus-org.freedesktop.Avahi.service'

これでは自動起動設定がOffになるだけなので、個別に「service FOOBAR stop」や「/etc/init.d/FOOBAR stop」などに相当する「systemctl stop FOOBAR」コマンドにてデーモンを停止する必要があると思う(*3)のだけれども、別に自分しか使わない環境なので再起動してみる。

再起動が終わった後にリストをチェックすると……、確かに自動起動がなされていないことが確認できる。

# systemctl list-units --type=service|grep "running"
auditd.service                                                                            loaded active running Security Auditing Service
crond.service                                                                             loaded active running Command Scheduler
dbus.service                                                                              loaded active running D-Bus System Message Bus
firewalld.service                                                                         loaded active running firewalld - dynamic firewall daemon
getty@tty1.service                                                                        loaded active running Getty on tty1
lvm2-lvmetad.service                                                                      loaded active running LVM2 metadata daemon
NetworkManager.service                                                                    loaded active running Network Manager
polkit.service                                                                            loaded active running Authorization Manager
rsyslog.service                                                                           loaded active running System Logging Service
sshd.service                                                                              loaded active running OpenSSH server daemon
systemd-journald.service                                                                  loaded active running Journal Service
systemd-logind.service                                                                    loaded active running Login Service
systemd-udevd.service                                                                     loaded active running udev Kernel Device Manager
tuned.service                                                                             loaded active running Dynamic System Tuning Daemon
vboxadd-service.service

なかなかいいんじゃないの?


最初のうちは「また覚え直しかーめんどくせぇなー」とか「別に従来のコマンド体系が使えるなら覚え直す必要なくね?」とか舐めたことほざいてたボクですが、ちょっといぢってみただけだけどなかなか悪くないんじゃないかなと思い始めた。

実際の所、Systemdは機能が豊富で「systemctl」コマンドもオプションがいっぱい。「今までやっていた○○」に完全に対応するコマンドがなかったり新しい概念が入っていたりするから最初は戸惑うけど、実際に使うものは限られているし一度覚えてしまえばたいしたことないレベルだろう。

まあ、これから商用レベルの運用ができると自信を持って言えるようにするのはもうちょっとかかりそうだけどね。

Appendix:参考サイト


下記のサイトが参考になりそうなので後でじっくり読んでおく。


*1:正確にはVirtualBoxのGuest Additionsをインストールしている関係でミニマムではない
*2:「exited」はファイルシステムマウントなどの1度だけ実行されれば良い系らしい
*3:例えば本番運用中のサーバでは気軽に再起動なんてできないだろう

0 件のコメント:

コメントを投稿