Estou lendo sobre RPC emessepágina.
Entendo que este é um modelo cliente/servidor, e o servidor pode responder às consultas do cliente. O que eu quero perguntar é se é possível que um componente do lado do servidor não esteja em execução quando o lado do cliente tenta usar o RPC para invocá-lo e, de alguma forma, o lado do servidor é executado para processar a solicitação?
Responder1
Existem pelo menos duas maneiras de ter um sistema que faça isso:
- O kernel faz o serviço RPC. Isso é verdade principalmente para servidores NFS. O kernel Linux faz o serviço NFS. Você não verá muito, se é que verá algum processo do usuário. Parte da razão para isso é o desempenho (e o serviço NFS é crítico para o desempenho) e parte é que o kernel possui informações sobre arquivos e sistemas de arquivos que não estão disponíveis em nenhum outro lugar.
- Você pode ter um "superservidor de internet"em execução, que escuta um conjunto de portas TCP e/ou UDP. Quando alguns dados chegam em um dos membros do conjunto de portas, o "superservidor" inicia o processo do servidor real e entrega o soquete como stdin e stdout. O original
inetd
caiu em desuso e háuma série de substituições, incluindoxinetd
,systemd
e outros.