Some files listed in /etc/xinetd.d contain a bug. It is not a xinetd bug ... it rather looks like a packaging bug. The line starting with the keyword "service" must be followed by a service name that is also defined in /etc/services (it is possible to use unlisted services by adding the UNLISTED flag - hard to guess ;-). Anyway, some files contains services not listed in /etc/services and not defined as UNLISTED, so they won't work : [pappy@rootdurum xinetd.d]# grep service *udp chargen-udp:service chargen-udp daytime-udp:service daytime-udp echo-udp:service echo-udp time-udp:service time The simplest solution to fix those bugs is to change in those *-upd files the service name by removing the "-udp" string. This was on a RH7.0 with xinetd-2.1.8.9pre11-1.i386.rpm. Some other files could contain badly configure services in previous version.
The fix you mention isn't an option, as the names need to be distinct.
names doesn't need to be distinct ... if we speak of the same names ! I'm talking about names in front of the service tag. Here is a sample with echo service : [root@rootdurum xinetd.d]# cat echo # default: off # description: An echo server. This is the tcp \ # version. service echo { type = INTERNAL id = echo-stream socket_type = stream protocol = tcp user = root wait = no # disable = yes } [root@rootdurum xinetd.d]# cat echo-udp # default: off # description: An echo server. This is the udp \ # version. service echo { type = INTERNAL id = echo-dgram socket_type = dgram protocol = udp user = root wait = yes # disable = yes port = 7 } Here is what you get when starting xinetd with /usr/sbin/xinet -d 01/1/19@20:37:09: DEBUG: {cnf_start_services} Started service: echo-stream 01/1/19@20:37:09: DEBUG: {cnf_start_services} Started service: echo-dgram Since the socket attribute is necessary, it is enought to differenciate between udp and tcp services. So it work fine :))) <adv> Have a look at my article about xinetd : http://www.linuxfocus.org/English/November2000/article175.shtml </adv>
Sorry, I didn't say why it has to be unique: The name is used for manipulating services (chkconfig, ntsysv)/
the solution is then to use the UNLISTED flag for the "type" attribute. I have never test that for an INTERNAL service ... but why not :) No time to test now
I don't understand the matter with chkconfig, ntsysv :( xinetd is a deamon started at some runlevels ... but the server it manages are never started directly (at least, they should not. If they are before xinetd, xinetd tells the port is already in use and forget about this port) I reallly can't see why chkconfig and/or ntsysv should have a look in /etc/xinetd.d ? Did you try with an UNLISTED flag for INTERNAL services ? Anyway, the problem will come back for every service that exists both in tcp and udp (I mean not only for INTERNAL servers).
If you take a look at chkconfig and ntsysv in Red Hat Linux 7, they can both turn services on or off ("chkconfig telnet off"). These use the names given, so they need to be unique... Adding UNLISTED seems to help, though - added in 2.1.8.9pre14-2
*** Bug 25292 has been marked as a duplicate of this bug. ***