RPC über inetd-Dämon starten
Vom Dämon inetd kann ein RPC-Server gestartet werden. Der einzige Unterschied zwischen der Verwendung des Dämons inetd und dem üblichen Code ist, dass die Serviceerstellungsroutine aufgerufen wird.
Da inet einen Socket als Dateideskriptor 0 übergibt, wird das folgende Format verwendet:
transp = svcudp_create(0); /* For UDP */
transp = svctcp_create(0,0,0); /* For listener TCP sockets */
transp = svcfd_create(0,0,0); /* For connected TCP sockets */
Rufen Sie außerdem die Routine svc_register wie folgt auf:
svc_register(transp, PROGNUM, VERSNUM, service, 0)
Das letzte Flag ist0da das Programm bereits vom Dämon inetd registriert wurde. Um den Serverprozess zu beenden und die Steuerung an inetzurückzugeben, muss der Benutzer explizit beendet werden. Die Routine svc_run wird nie zurückgegeben.
Einträge in der Datei /etc/inetd.conf für RPC-Services haben eines der folgenden Formate:
p_name sunrpc_udp udp wait user server args version
p_name sunrpc_tcp tcp wait user server args version
Erläuterungen: p_nameist der symbolische Name des Programms, wie er in der RPC-Routine angezeigt wird,serverist das Programm, das den Server implementiert, undversionDie Versionsnummer des Service.
Wenn dasselbe Programm mehrere Versionen verarbeitet, kann die Versionsnummer ein Bereich sein, wie im folgenden Beispiel:
rstatd sunrpc_udp udp wait root /usr/sbin/rpc.rstatd rstatd 100001 1-2