[CentOS7] named.service と named-chroot.service

chroot有効な bind (named-chroot.service) と、そうじゃない bind (named.service) は (systemdのunit的に) 別物らしい。

したがって、障害時などに焦ってうっかり

systemctl restart named

とかやると、chrootなしのくっさい bind が起動する……!?

正しくは↓

systemctl restart named-chroot

ファーwww


systemd的に別unit。

# systemctl list-unit-files|grep named
named-chroot-setup.service                    static  
named-chroot.service                          enabled 
named-setup-rndc.service                      static  
named.service                                 disabled
systemd-hostnamed.service                     static  

ユニットファイルは違うパッケージに含まれてる。

# rpm -ql bind | grep systemd
/usr/lib/systemd/system/named-setup-rndc.service
/usr/lib/systemd/system/named.service

# rpm -ql bind-chroot | grep systemd
/usr/lib/systemd/system/named-chroot-setup.service
/usr/lib/systemd/system/named-chroot.service

起動コマンドも違う。

# cat /usr/lib/systemd/system/named.service
.
.
.

ExecStartPre=/bin/bash -c 'if [ ! "$DISABLE_ZONE_CHECKING" == "yes" ]; then /usr/sbin/named-checkconf -z "$NAMEDCONF"; else echo "Checking of zone files is disabled"; fi'
ExecStart=/usr/sbin/named -u named -c ${NAMEDCONF} $OPTIONS

.
.
.

# cat /usr/lib/systemd/system/named-chroot.service
.
.
.

ExecStartPre=/bin/bash -c 'if [ ! "$DISABLE_ZONE_CHECKING" == "yes" ]; then /usr/sbin/named-checkconf -t /var/named/chroot -z "$NAMEDCONF"; else echo "Checking of zone files is disabled"; fi'
ExecStart=/usr/sbin/named -u named -c ${NAMEDCONF} -t /var/named/chroot $OPTIONS
.
.
.