Я читаю о RPC наэтотстраница.
Я понимаю, что это модель клиент/сервер, и сервер может отвечать на запросы клиента. Я хочу спросить, возможно ли, чтобы компонент на стороне сервера не был запущен, когда клиентская сторона пытается использовать RPC для его вызова, и каким-то образом серверная сторона запускается для обработки запроса?
решение1
Есть как минимум два способа создать систему, которая это делает:
- Ядро выполняет службу RPC. Это в основном касается серверов NFS. Ядро Linux выполняет службу NFS. Вы не увидите многого, если вообще увидите, от пользовательского процесса. Частично это объясняется производительностью (а служба NFS критически важна для производительности), а частично тем, что ядро имеет информацию о файлах и файловых системах, которая недоступна больше нигде.
- Вы можете иметь "интернет супер сервер" запущен, который прослушивает набор портов TCP и/или UDP. Когда какие-то данные поступают на один из портов, входящих в набор, "суперсервер" запускает реальный серверный процесс и передает сокет как stdin и stdout. Оригинал
inetd
вышел из моды, и естьряд замен, в том числеxinetd
,systemd
и другие.