Ich verwende xinetd
und es funktioniert für meine zwecke. Ich habe jedoch kürzlich entdeckt, dass systemd etwas eingebaut hat, das als „Socket-Aktivierung“ bezeichnet wird.
Diese beiden scheinen sich sehr ähnlich zu sein, aber systemd ist „offiziell“ und scheint die bessere Wahl zu sein.
Aber bevor Sie es verwenden, sind sie wirklich gleich? Gibt es Unterschiede, die ich beachten sollte?
Zum Beispiel möchte ich einige dockerisierte Dienste nur starten, wenn sie zum ersten Mal angefordert werden – mein erster Gedanke wäre, xinetd zu verwenden. Aber ist die Socket-Aktivierung besser / schneller / stabiler / was auch immer?
Akzeptierte Antwort:
Ich glaube nicht, dass die Systemd-Socket-Aktivierung wesentlich besser ist als xinetd
Aktivierung, isoliert betrachtet; Letzteres ist auch stabil und gibt es schon länger. Die Socket-Aktivierung ist für die Entkopplung von Diensten sehr interessant:Sie ermöglicht das parallele Starten von Diensten, auch wenn diese kommunizieren müssen, und das unabhängige Neustarten von Diensten.
Wenn Sie einen Dienst haben, der xinetd
unterstützt -Style-Aktivierung, kann mit Socket-Aktivierung verwendet werden:ein .socket
Beschreibung mit Accept=true
verhält sich genauso wie xinetd
. Außerdem benötigen Sie einen .service
Datei zur Beschreibung des Dienstes. Die vollständigen Vorteile der Systemd-Socket-Aktivierung erfordern Unterstützung im Dæmon, der den Dienst bereitstellt. Siehe den Blogbeitrag zum Thema.
Mein Rat lautet eher „wenn es nicht kaputt ist, repariere es nicht“, aber wenn du einen xinetd
konvertieren möchtest -basierter Dienst für systemd ist sicherlich machbar.