/etc/inetd.conf lista esses servidores e suas portas habituais. O comando inetd ouve em todas elas; quando ele detecta uma conexão em qualquer uma delas, ele executa o programa servidor correspondente.
/etc/inetd.conf descreve um servidor através de sete campos (separados por espaços):
/etc/services).
stream para conexão TCP, dgram para datagrams UDP.
tcp ou udp.
wait ou nowait, para dizer ao inetd quando ele deve esperar ou não pelo fim do processo lançado antes de aceitar outra conexão. Para conexões TCP, facilmente multiplicáveis (multiplexable) , você geralmente pode usar nowait. Para programas respondendo sobre UDP, você deve usar nowait apenas se o servidor é capaz de gerenciar várias conexões em paralelo. Você pode usar um ponto como sufixo nesse campo, seguido pelo número máximo de conexões autorizadas por minuto (o limite padrão é 256).
argv[0] em C).
Exemplo 9.1. Excerto do /etc/inetd.conf
talk dgram udp wait nobody.tty /usr/sbin/in.talkd in.talkd finger stream tcp nowait nobody /usr/sbin/tcpd in.fingerd ident stream tcp nowait nobody /usr/sbin/identd identd -i
tcpd é frequentemente usado no arquivo /etc/inetd.conf. Ele permite limitar conexões de entrada aplicando regras de controle de acesso, documentadas na página de manual hosts_access(5), e que são configuradas nos arquivos /etc/hosts.allow e /etc/hosts.deny. Uma vez que tenha sido determinado que a conexão está autorizada, o tcpd executa o servidor real (como o in.fingerd no nosso exemplo). Vale apena notar que o tcpd conta com o nome sob o qual ele foi invocado (isto é, o primeiro argumento, argv[0]) para identificar o programa real a rodar. Então você não deveria iniciar a lista de argumentos com o tcpd mas com o programa que tem que ser envolto.