Confirmed that this is still a serious bug on an updated CentOS 7 system:
# cat /etc/redhat-release
CentOS Linux release 7.0.1406 (Core)
# sed -i s#/usr/sbin/named#"/usr/sbin/named -broken"#g /usr/lib/systemd/system/named.service
# systemctl daemon-reload ; echo $?
0
# journalctl -r -u named
# sed -i s#"/usr/sbin/named -broken"#/usr/sbin/named#g /usr/lib/systemd/system/named.service
Notice the exit status of 0. systemd doesn't return the correct exit status. Also, when viewing the journal, you'd expect to see the error:
usage: named [-4|-6] [-c conffile] [-d debuglevel] [-E engine] [-f|-g]
[-n number_of_cpus] [-p port] [-s] [-t chrootdir] [-u username]
[-m {usage|trace|record|size|mctx}]
named: unknown option '-b'
but it is not in the journal. systemd swallows the stderr output and reports the incorrect exit status. This makes it very difficult to troubleshoot start-up problems. I've wasted many hours because of this systemd bug.