Multiuser/Multitasking-Umgebungen, wie sie beispielsweise das Betriebssystem UNIX bietet, erlauben die quasi ,,gleichzeitige`` Abarbeitung von Aufgaben. Die kleinsten Einheiten, die parallel ablaufen können, werden Prozesse Prozesse genannt. Solche parallel laufenden Prozesse sind etwa Programme der einzelnen Benutzer. Spezielle Programme, die feste Aufgaben durchführen, wie das Abwickeln von Druckaufträgen und die dazu ständig aktiv sein müssen, werden als Hintergrundprozesse oder auch daemons Daemons (Disk And Execution MONitor) bezeichnet.
Auch die Serverprozesse, über die die Kommunikation zwischen zwei Rechnern abläuft, sind als Hintergrundprozesse aktiv. Diese bauen einen Kommunikationspunkt oder Socket auf. Ein Client, der mit dem Server in Verbindung treten möchte, koppelt sich ebenfalls an einen Socket und beantragt einen Verbindungsaufbau zu dem Socket des Servers. Wenn der Serverprozeß die Verbindung annehmen will, gibt er dies dem Client bekannt und benennt ihm einen anderen Punkt, über den die Kommunikation mit dem Client stattfinden kann. Dies ist auf Serverseite mit der Abspaltung eines Hintergrundprozesses (child process) verbunden. Der ursprüngliche Serverprozeß ist nun wieder frei, um neue ankommende Clients zu bedienen [Gul88].
Damit ein Dienst angeboten werden kann, muß also ein Serverprozeß auf dem Serverrechner gestartet sein. Dies bedingt, daß auf diesem Rechner Prozesse laufen müssen, selbst wenn Dienste nie oder nur selten benutzt werden. Für die TCP/IP-Netzdienste schafft der ,,Superserver`` inetd Abhilfe, Der Internet services daemon inetd der anstelle der einzelnen Serverprogramme die Ports abhört und auf ankommende Verbindungen wartet. Nachdem die Verbindung zustandegekommen ist, wird der zugehörige Serverprozeß gestartet. Dies hat den Vorteil, daß im inaktiven Zustand lediglich ein Prozeß laufen muß. Der Server ist unter UNIX über die Datei /etc/inetd.conf konfigurierbar, so daß Serverdienste sehr leicht bereitgestellt werden können.