Eu poderia estar certo disso já faz um tempo desde que eu trabalhei em daemons de linguagem interpretada, mas eu acho que a maneira "certa" de fazer isso é arquiteta seu programa para ouvir a porta e bifurcar outro processo para lidar com um pacote de solicitações / trabalhos em outra porta enquanto o pai continua a ouvir mais conexões.
Você pode querer procurar amostras de código sobre como criar servidores da Web simples para ver como fazer algo assim. Mailq está certo de que você não pode ter vários processos para ouvir o mesmo par de IP e porta ao mesmo tempo.
Então ... bifurque outros processos de trabalho que executam seus trabalhos e depois sincronize com um processo de controle.