fedora doesn't ship inetd vs xinetd
debian ships
inetutils-inetd,openbsd-inetd,rinetd,rlinetd,tang-xinetd,xinetd
gentoo has a convenient virtual/inetd that lists out any satisfying packages:
sys-apps/xinetdsys-apps/netkit-basesys-apps/ucspi-tcpnet-misc/ipsvdnet-misc/inetutils[inetd]
also has others not listed in the virtual package:
rinetd
we'll be comparing a simple use case of hooking up the systat port to the whocommand
inetd
/etc/init.d.conf
systat stream tcp nowait root /usr/bin/who /usr/bin/who
uses /etc/services to look up service port (col 1)
uses /etc/protocols to look up protocol type (col 3)
all in a single file
xinetd
has an /etc/xinetd.d directory so you don't have to modify inetd.conf with a stupid helper
/etc/xinit.d/systat
service systat
{
id = systat
socket_type = stream
protocol = tcp
user = root
wait = no
server = /usr/bin/who
}
uses /etc/services & /etc/protocol for lookups. yippeee
and if I want to add a udp listener I can append a new listenever service to the same file:
TODO
yippee:
$ telnet 10.213.0.151 systat
Trying 10.213.0.151...
Connected to 10.213.0.151.
Escape character is '^]'.
m sshd 2026-06-13 21:54 (10.200.254.12)
Connection closed by foreign host.
systemd
I'm a systemd hater and it'll show a little bit here, but I think this is one of the better features of systemd
doesn't list the listening application under netstat -tulpn
doesn't let me specify the port as a name listed under /etc/services `
rinetd
turns out this isn't a service redirector, woops! all rinetd does is redirect port connections to other addresses' ports. a simple proxy.
rlinetd
// TODO: TEST
service "systat" {
enabled yes;
protocol tcp;
user "nobody";
server "/usr/bin/who";
}
specifically useful though is the exec option which lets you pass in some string modifiers into the execution arguments
https://manpages.debian.org/trixie/rlinetd/rlinetd.conf.5.en.html