O xinetd funciona ao bifurcar um novo processo para cada conexão, e a conexão é fechada quando o processo termina. Se você tem um processo persistente, deve usar algo como netcat.
Eu tenho um programa de console do servidor java que configurei o xinetd para iniciar quando a conexão chega em uma determinada porta e, em seguida, o programa é executado em um loop infinito recebendo entrada de trocas telefônicas.
O problema é que, quando um novo pedaço de fluxo vem da troca, o xinetd bifurca um novo processo a cada vez. Tentei definir o parâmetro wait como yes e reiniciei o deamon, mas não obtive sucesso.
Como posso parar esse comportamento e fazer com que o deamon direcione o fluxo para o processo já em execução? Estou faltando alguma coisa na minha configuração ou é apenas incorreto?
Minha configuração é a seguinte:
defaults
{
instances = 60
log_type = SYSLOG authpriv
log_on_success = HOST PID
log_on_failure = HOST
cps = 50 10
}
includedir /etc/xinetd.d
E então minha configuração atual,
service aos_larmar
{
socket_type = stream
protocol = tcp
user = root
type = UNLISTED
wait = yes
instances = 256
server = /home/gunnl/java/start.sh
port = 5204
disable = no
}
Meu servidor OS é
Red Hat Enterprise Linux ES versão 4 (Nahant Update 7)
O xinetd funciona ao bifurcar um novo processo para cada conexão, e a conexão é fechada quando o processo termina. Se você tem um processo persistente, deve usar algo como netcat.