Ok, a little background first. I'm actually migrating a working bind configuration from an old Fedora 9 box onto a freshly installed Fedora 15. During migration I've moved the config files from a non-standard directory into /var/named.
After several hours of tinkering and testing I get a working config by running named from a shell prompt, startup is without error, all resolution works, so I kill it and try to set it to auto-run from systemctl, this is where my problems start. This is what I get:
root@titan sysconfig]# systemctl status named.service
named.service - LSB: start|stop|status|restart|try-restart|reload|force-reload DNS server
Loaded: loaded (/etc/rc.d/init.d/named)
Active: failed since Tue, 13 Sep 2011 14:09:13 +0100; 1min 55s ago
Process: 1864 ExecStop=/etc/rc.d/init.d/named stop (code=exited, status=0/SUCCESS)
Process: 3960 ExecStart=/etc/rc.d/init.d/named start (code=exited, status=2/INVALIDARGUMENT)
and I see this in the logs:
Sep 13 14:09:13 titan named: /etc/named.conf:5: change directory to '/var/named' failed: permission denied
Sep 13 14:09:13 titan named:
Sep 13 14:09:13 titan named: /etc/named.conf:5: parsing failed
Sep 13 14:09:13 titan systemd: named.service: control process exited, code=exited status=2
Sep 13 14:09:13 titan systemd: Unit named.service entered failed state.
I've checked that selinux is behaving (which it seems to be). I've re-checked the file and directory permissions for named.conf as per the original installed files, I've checked that CHROOT is disabled.
I've worked through the startup process in /etc/init.d/named as best I can and saw it was starting named with "-u named" so I've tried that from a shell prompt and that works too so at this stage I know there is nothing wrong with the actual bind setup which only seems to leave "systemctl" as the culprit.
Has anybody else come across this issue or is able to tell me what "systemctl" is doing to bind to stop it working when it quite clearly should be?