Iniciando um processo quando uma porta é conectada a
Pergunta
Quero criar um único cliente que emite solicitações unicast de dados de qualquer uma das muitas estações de trabalho na mesma LAN. O cliente provavelmente executará o Linux, mas as estações de trabalho podem executar qualquer sistema operacional. É possível evitar a execução de um daemon em cada uma das estações de trabalho e, no entanto, respondê -las às solicitações dentro de alguns segundos? Quero evitar criar um daemon porque o serviço pode ser usado com pouca frequência e não quero sobrecarregar as estações de trabalho com outro processo.
Solução
Dê uma olhada nas implementações adequadas de inetd
para o seu sistema operacional de destino. Este serviço ouve as conexões e delega a comunicação real para esclarecer o IO através do stdin/stdout para uma instância do seu processo (que é gerado sob demanda):
O utilitário inetd [..] ouve conexões em certos soquetes da Internet. Quando uma conexão é encontrada em um de seus soquetes, ele decide qual serviço o soquete corresponde e chama um programa para atender a solicitação. O programa do servidor é chamado com o soquete de serviço como seus descritores de entrada, saída e erro padrão. Após o término do programa, o Inetd continua ouvindo no soquete [..