Como reservo uma lista de portas para meus aplicativos personalizados?
Para ser específico, o produto que estou criando tem muitos processos e muita intercomunicação entre eles.
O problema que estou tendo é que - de vez em quando - o sistema operacional rouba minhas portas. É raro, mas acontece.
Isso pode ocorrer porque um aplicativo diferente usou ":: bind" sem porta especificada.
Ou, às vezes, meus próprios aplicativos roubam a porta quando eu chamo ":: connect" com um soquete não acoplado. Como visto na página de manual:
Se o soquete ainda não tiver sido associado a um endereço local, connect () o vinculará a um endereço que, a menos que a família de endereços do soquete seja AF_UNIX, seja um endereço local não utilizado.
Portanto, minha pergunta é: posso reservar as portas necessárias para que o sistema operacional não as use? Isso pode ser feito com / etc / services? Ou existe uma maneira diferente?
SELinux
no modo de imposição, pode atender aos seus requisitos, ainda estou aprendendo sobre isso. Assim, apenas um palpite, talvez você possa definir a sua própria política para SELinux
a reserva portas teus, tais como my_server_port_t tcp 1111, 2222, 3333, 4444-4600
. Se seu aplicativo for executado em qualquer lugar (não um aplicativo de servidor), receio que você não possa controlar se SELinux
está ativado ou desativado.