데비안 시스템 및 이름 지정, 이상한 오류

데비안 시스템 및 이름 지정, 이상한 오류

Fedora 및 RockyLinux와 같이 chroot를 사용하도록 이름을 설정했습니다(-t /var/named/chroot). 데몬은 잘 작동합니다. 단 하나의 작은 문제가 있습니다. 장치가 시작되지만 systemd는 이를 실패한 것으로 표시합니다!

root@dns1:~# systemctl start named&
[1] 6158
root@dns1:~# 
root@dns1:~# pgrep -a named
6152 /usr/sbin/named -f -u bind -t /var/named/chroot -4 -c /etc/named.conf

2분뒤...

root@dns1:~# jobs
[1]+  Running                 systemctl start named &
root@dns1:~# Job for named.service failed because a timeout was exceeded.
See "systemctl status named.service" and "journalctl -xeu named.service" for details.

시스템이 "활성화 중"으로 표시됩니다.

systemctl status named
● named.service - BIND Domain Name Server
     Loaded: loaded (/lib/systemd/system/named.service; enabled; preset: enabled)
    Drop-In: /run/systemd/system/service.d
             └─zzz-lxc-service.conf
     Active: activating (start) since Mon 2023-10-30 16:45:58 CET; 31s ago
       Docs: man:named(8)
   Main PID: 6165 (named)
     Memory: 9.2M
     CGroup: /system.slice/named.service
             └─6165 /usr/sbin/named -f -u bind -t /var/named/chroot -4 -c /etc/named.conf

이것은 단위입니다

cat named.service

[Unit]
Description=BIND Domain Name Server
Documentation=man:named(8)
After=network.target
Wants=nss-lookup.target
Before=nss-lookup.target

[Service]
Type=notify
EnvironmentFile=-/etc/default/named
ExecStart=/usr/sbin/named -f $OPTIONS
ExecReload=/usr/sbin/rndc reload
ExecStop=/usr/sbin/rndc stop
Restart=on-failure

[Install]
WantedBy=multi-user.target
Alias=bind9.service

답변1

Type=notify

아, 작동하지 않습니다. BIND9에 자체적으로 chroot를 지시하면 systemd에 시작되었음을 알리는 데 필요한 소켓에 액세스할 수 없습니다.

options {directory "/var/named"}rocky 8.7에서는 명령줄 대신 구성 파일 에 pidfile을 넣고 거기에 pidfile을 명시적으로 지정하여 이 문제를 해결합니다 . notify하지만 여전히 쓸모가 없습니다 forking.

답변2

해결책을 찾았습니다. 이 간단한 구문을 사용하면 잘 작동합니다.

vim 이름 지정 서비스

[Unit]
Description=BIND Domain Name Server
Documentation=man:named(8)
After=network.target
Wants=nss-lookup.target
Before=nss-lookup.target

[Service]
ExecStart=/usr/sbin/named -f -u named -t /var/named/chroot -u bind -c /etc/named.conf
ExecReload=/usr/sbin/rndc reload
    
[Install]
WantedBy=multi-user.target
Alias=bind9.service
     

그런 다음 재부팅합니다.

systemctl daemon-reload
systemctl restart named

잘 작동합니다. 재부팅하고 다시 로드하세요.

systemctl status named
● named.service - BIND Domain Name Server
     Loaded: loaded (/lib/systemd/system/named.service; enabled; preset: enabled)
    Drop-In: /run/systemd/system/service.d
             └─zzz-lxc-service.conf
     Active: active (running) since Mon 2023-10-30 19:43:58 CET; 1min 16s ago
       Docs: man:named(8)
   Main PID: 7218 (named)
     Memory: 9.5M
     CGroup: /system.slice/named.service
             └─7218 /usr/sbin/named -f -u named -t /var/named/chroot -u bind -c /etc/named.conf

관련 정보