SYSTEMD.SOCKET(5)

BEZEICHNUNG
systemd.socket - Socket-Unit-Konfiguration

ÜBERSICHT

Socket.socket

BESCHREIBUNG

Eine Unit-Konfigurationsdatei, deren Namen in ».socket« endet, kodiert Informationen über einen IPC oder Netzwerk-Socket oder ein Dateisystem-FIFO, der von Systemd gesteuert und überwacht wird, für Socket-basierte Aktivierung.

Diese Handbuchsseite führt die für diesen Unit-Typ spezifischen Konfigurationsoptionen auf. Siehe systemd.unit(5) für die gemeinsamen Optionen aller Unit-Konfigurationsdateien. Die gemeinsamen Konfigurationseinträge werden in den generischen Abschnitten [Unit] und [Install] konfiguriert. Die Socket-spezifischen Konfigurationsoptionen werden in dem Abschnitt [Socket] konfiguriert.

Zusätzliche Optionen sind in systemd.exec(5), das die Ausführungsumgebung, in der die Befehle ExecStartPre=, ExecStartPost=, ExecStopPre= und ExecStopPost= ausgeführt werden und in systemd.kill(5), das die Art der Beendigung der Prozesse definiert und in systemd.resource-control(5), das die Ressourcensteuerungseinstellungen für die Prozesse des Sockets konfiguriert, aufgeführt.

Für jede Socket-Datei muss eine passende Dienstedatei existieren, die den bei eingehendem Verkehr auf dem Socket zu startenden Dienst beschreibt (siehe systemd.service(5) für weitere Informationen über .service-Dateien). Der Name der .service-Unit ist standardmäßig der gleiche wie der Name der .socket-Unit, dies kann aber mit der weiter unten beschriebenen Option Service= verändert werden. Abhängig von den Einstellungen der unten beschriebenen Option Accept= muss diese Dienste-Unit entweder wie die .socket-Unit (aber mit entfernter Endung) benannt sein, außer dies wird mit Service= außer Kraft gesetzt, oder sie muss eine Vorlagen-Unit sein, die auf die gleiche Art benannt ist. Beispiel: Eine Socket-Datei foo.socket benötigt einen passenden Dienst foo.service, falls Accept=false gesetzt ist. Falls Accept=true gesetzt ist, muss eine Dienstevorlagedatei foo@.service existieren, aus der die Dienste für jede einkommende Verbindung instanziiert werden.

Es wird keine implizite Abhängigkeit WantedBy= oder RequiredBy= vom Socket auf den Dienst hinzugefügt. Dies bedeutet, dass der Dienst ohne den Socket gestartet werden darf. In diesem Fall muss er in der Lage sein, den Socket selbst zu öffnen. Um dies zu verhindern, kann eine explizite Abhängigkeit Requires= hinzugefügt werden.

Socket-Units können zur Implementierung des bedarfsorientierten Startens von Diensten sowie zum parallen Starten von Diensten verwandt werden. Siehe die am Ende der Einleitung verlinkten Blog-Geschichten.

Beachten Sie, dass Daemon-Software, die für Socket-Aktivierung mit Socket-Units konfiguriert ist, in der Lage sein muss, Sockets von Systemd zu akzeptieren, entwender mittels Systemds nativer Socket-Übergabeschnittstelle (siehe sd_listen_fds(3) für Details) oder mittels traditioneller inetd(8)-artiger Socket-Übergabe (d.h. Sockets, die über Standardein- und -ausgabe mittels StandardInput=socket in der Dienstedatei übergeben werden).

AUTOMATISCHE ABHÄNGIGKEITEN

  Implizite Abhängigkeiten

Die folgenden Abhängigkeiten werden implizit hinzugefügt:

    • Socket-Units erlangen automatisch eine Abhängigkeit Before= auf die von ihnen aktivierten Dienste-Units.

    • Socket-Units, die sich auf Dateisystempfade beziehen (wie AF_UNIX-Sockets oder FIFOs) erlangen implizit eine Abhängigkeit Requires= und After= auf alle für den Zugriff auf diese Pfade notwendigen Einhänge-Units.

    • Socket-Units, die die Einstellung BindToDevice= verwenden, erlangen automatisch Abhängigkeiten BindsTo= und After= von der Geräte-Unit, die die festgelegte Netzwerkschnittstelle kapselt.

Zusätzliche implizite Abhängigkeiten als Ergebnis der Ausführung und der gemäß systemd.exec(5) und systemd.resource-control(5) dokumentierten Ressourcen-Steuerungsparameter können hinzugefügt werden.

  Standardabhängigkeiten

Die folgenden Abhängigkeiten werden hinzugefügt, es sei denn, DefaultDependencies=no ist gesetzt:

    • Socket-Units erlangen automatisch eine Abhängigkeit Before= von sockets.target.

    • Socket-Units erlangen automatisch ein Abhängigkeitspaar After= und Requires= von sysinit.target und ein Abhängigkeitspaar Before= und Conflicts= von shutdown.target. Diese Abhängigkeiten stellen sicher, dass die Socket-Unit vor den normalen Diensten beim Systemstart gestartet und beim Herunterfahren beendet wird. Nur Sockets, die in der frühen Systemstartphase oder spät beim Herunterfahren beteiligt sind, sollten die Option DefaultDependencies= deaktivieren.

OPTIONEN

Socket-Dateien müssen einen Abschnitt »[Socket]« enthalten, der Informationen über das überwachte Socket oder den überwachten FIFO weitergibt. Eine Reihe von Optionen, die in diesem Abschnitt angegeben werden können, werden auch von anderen Unit-Typen verwandt. Diese Optionen sind in systemd.exec(5) und systemd.kill(5) dokumentiert. Die für den Abschnitt »[Socket]« in Socket-Units speziellen Optionen sind die folgenden:

ListenStream=, ListenDatagram=, ListenSequentialPacket=
    Legt eine Adresse fest, an der auf Anfragen für einen Stream- (SOCK_STREAM), Datagram- (SOCK_DGRAM) bzw. sequezielles Paket- (SOCK_SEQPACKET) Socket gewartet werden soll. Die Adresse kann in verschiedenen Formaten geschrieben werden:

    Falls die Adresse mit einem Schrägstrich (»/«) beginnt, wird sie von einem Dateisystem-Socket in der Socket-Familie AF_UNIX gelesen.

    Falls die Adresse mit einem At-Zeichen (»@«) beginnt, wird sie als abstrakter Namensraum-Socket in der Familie AF_UNIX gelesen. Das »@« wird durch ein NUL vor der Anbindung ersetzt. Für Details siehe unix(7).

    Falls die Adresszeichenkette eine einzelne Zahl ist, wird sie als Portnummer, an dem auf IPv6-Anfragen gewartet werden soll, gelesen. Abhängig vom Wert von BindIPv6Only= (siehe oben) könnte dies dazu führen, dass der Dienst sowohl auf IPv6 und IPv4 (Vorgabe) oder nur IPv6 verfügbar ist.

    Falls die Adresszeichenkette eine Zeichenkette im Format v.w.x.y:z ist, wird sie als IPv4-Kennung zum Warten auf Anfragen auf Adresse v.w.x.y auf einem Port z gelesen.

    Falls die Adresszeichenkette eine Zeichenkette im Format [x]:y ist, wird sie als IPv6-Adresse auf einem Port y gelesen. Beachten Sie, dass dies den Dienst auch mittels IPv4 verfügbar machen könnte, abhängig von der Einstellung BindIPv6Only= (siehe unten).

    Falls die Adresszeichenkette eine Zeichenkette im Format »vsock:x:y« ist, wird sie als CID-Adresse »x« auf einem Port »y« in der Familie AF_VSOCK gelesen. Die CID ist eine eindeutige 32-Bit-Ganzzahlkennung in AF_VSOCK, analog zu einer IP-Adresse. Die Angabe der CID ist optional und kann auf die leere Zeichenkette gesetzt werden.

    Beachten Sie, dass SOCK_SEQPACKET (d.h. ListenSequentialPacket=) nur für AF_UNIX-Sockets verfügbar ist. Wird SOCK_STREAM (d.h. ListenStream=) für IP-Sockets verwandt, dann bezieht es sich auf TCP-Sockets, SOCK_DGRAM (d.h. ListenDatagram=) auf UDP.

    Diese Optionen können mehr als einmal angegeben werden. In diesem Fall wird eingehender Verkehr auf einem der Sockets Dienste-Aktivierung auslösen und alle aufgeführten Sockets werden an den Dienst übergeben, unabhängig davon, ob es auf ihnen eingehenden Verkehr gibt oder nicht. Falls eine der Optionen die leere Zeichenkette zugewiesen wird, wird die Liste der Adressen, bei denen auf Anfragen gewartet werden soll, zurückgesetzt und alle vorherigen Verwendungen einer dieser Optionen werden keinen Effekt haben.

    Es ist auch möglich, bei der Verwendung von Service= mehr als eine Socket-Unit für den gleichen Dienst zu haben und der Dienst wird alle Sockets, die in allen Socket-Units konfiguriert sind, empfangen. Die in einer Unit konfigurierten Sockets werden in der Reihenfolge der Konfiguration weitergegeben, zwischen Socket-Units ist aber keine Ordnung festgelegt.

    Falls hier eine IP-Adresse verwandt wird, ist es oft wünschenswert, auf ihr auf Anfragen zu warten, bevor die Schnittstelle, auf der sie konfiguriert ist, hochgebracht und einsatzbereit ist und sogar unabhängig davon, ob sie zu irgendeinem Zeitpunkt hoch und einsatzbereit sein wird. Um damit umzugehen, wird empfohlen, die unten beschriebene Option FreeBind= zu setzen.

ListenFIFO=
    Legt einen Dateisystem-FIFO fest, auf dem auf Anfragen gewartet wird. Dies erwartet einen absoluten Dateisystempfad als Argument. Das Verhalten ist ansonsten sehr ähnlich zu der Direktive ListenDatagram= oben.

ListenSpecial=
    Legt eine besondere Datei in dem Dateisystem fest, auf der auf Anfragen gewartet werden soll. Dies erwartet einen absoluten Dateisystempfad als Argument. Das Verhalten ist ansonsten sehr ähnlich zu der Direktive ListenFIFO= oben. Verwenden Sie dies, um ein Zeichengeräteknoten sowie besondere Dateien in /proc und /sys zu öffnen.

ListenNetlink=
    Legt eine Netlink-Familie fest, für die ein Socket erstellt werden soll, bei dem auf Anfragen gewartet werden soll. Dies erwartet eine kurze Zeichenkette, die sich auf den AF_NETLINK-Familiennamen bezieht (wie audit oder kobject-uevent), als Argument, optional kann ein Leerraumzeichen gefolgt von einer multicast-Gruppenganzzahl angehängt werden. Das Verhalten ist ansonsten sehr ähnlich zu der Direktive ListenDatagram= oben.

ListenMessageQueue=
    Legt einen POSIX-Nachrichtenwarteschlangennamen fest, bei dem auf Anfragen gewartet werden soll. Dies erwartet einen gültigen Nachrichtenwarteschlangennamen (d.h. anfangend mit /). Das Verhalten ist ansonsten sehr ähnlich zu der Direktive ListenDatagram= oben. Unter Linux sind Nachrichtenwarteschlangendeskriptoren tatsächlich Dateideskriptoren und können zwischen Prozessen vererbt werden.

ListenUSBFunction=
    Legt einen USB-FunctionFS[1]-Endpunktort zur Implementierung von USB-Gadget-Funktionen fest, auf dem auf Anfragen gewartet werden soll. Dies erwartet einen absoluten Dateisystempfad eines Functionfs-Einhängepunktes als Argument. Das Verhalten ist ansonsten ähnlich zu der Direktive ListenFIFO= oben. Verwenden Sie dies, um den FunctionFS-Endpunkt ep0 zu öffnen. Wird diese Option verwandt, dann muss der aktivierte Dienst die Optionen USBFunctionDescriptors= und USBFunctionStrings= gesetzt haben.

SocketProtocol=
    Akzeptiert udplite oder sctp. Legt ein Socket-Protokoll (IPPROTO_UDPLITE) bzw. SCTP-Protokoll (IPPROTO_SCTP) fest.

BindIPv6Only=
    Akzeptiert entweder default, both oder ipv6-only. Steuert die Socket-Option IPV6_V6ONLY (siehe ipv6(7) für Details). Falls both werden IPv6-gebundende Sockets sowohl über IPv4 als auch IPv6 zugreifbar sein. Falls ipv6-only werden sie nur über IPv6 zugreifbar sein. Falls default (was, Überraschung, die Vorgabe ist) wird die systemweite Voreinstellung, wie sie durch /proc/sys/net/ipv6/bindv6only gesteuert wird, die standardmäßig wiederum ein Äquivalent von both ist, verwandt.

Backlog=
    Akzeptiert ein vorzeichenfreies Ganzzahlargument. Legt die Anzahl an Verbindungen, die noch nicht akzeptiert wurden und in die Warteschlange eingereiht werden sollen, fest. Diese Einstellung ist nur für Strom- und sequenzielle Paket-Sockets relevant. Siehe listen(2) für Details. Standardmäßig SOMAXCONN (128).

BindToDevice=
    Legt einen Netzwerkschnittstellennamen fest, an den dieses Socket gebunden werden soll. Falls gesetzt wird Verkehr nur von der festgelegten Netzwerkschnittstelle akzeptiert. Dies steuert die Socket-Option SO_BINDTODEVICE (siehe socket(7) für Details).Falls diese Option verwandt wird, wird eine implizite Abhängigkeit von dieser Socket-Unit auf die Netzwerkschnittellen-Geräte-Unit (siehe systemd.device(5)) erstellt. Beachten Sie, dass das Setzen dieses Parameters zur Ergänzung zusätzlicher Abhängigkeiten zu der Unit führen könnte (siehe oben).

SocketUser=, SocketGroup=
    Akzeptiert einen UNIX-Benutzer-/Gruppennamen. Wenn festgelegt gehören alle AF_UNIX-Sockets und FIFO-Knoten im Dateisystem dem festgelegten Benutzer und der festgelegten Gruppe. Falls nicht gesetzt (die Vorgabe) gehören die Knoten dem Benutzer/der Gruppe root (falls im Systemkontext ausgeführt) oder dem aufrufenden Benutzer/der aufrufenden Gruppe (falls im Benutzerkontext ausgeführt). Falls nur ein Benutzer aber keine Gruppe festgelegt ist, dann wird die Gruppe von der Standardgruppe des Benutzers abgeleitet.

SocketMode=
    Falls auf einem Dateisystem-Socket oder FIFO auf Anfragen gewartet wird, legt diese Option den Dateisystemzugriffsmodus bei der Erzeugung des Dateiknotens fest. Akzeptiert einen Zugriffsmodus in oktaler Notation. Standardmäßig 0666.

DirectoryMode=
    Falls auf einem Dateisystem-Socket oder FIFO auf Anfragen gewartet wird, werden die Elternknoten bei Bedarf automatisch erzeugt. Diese Option legt den Dateisystemzugriffsmodus bei der Erzeugung dieser Verzeichnisse fest. Akzeptiert einen Zugriffsmodus in oktaler Notation. Standardmäßig 0755.

Accept=
    Akzeptiert ein logisches Argument. Falls wahr, wird für jede eingehende Verbindung eine Dienste-Instanz gestartet und nur der Verbindungs-Socket übergeben. Falls falsch, werden alle auf Anfragen wartende Sockets selbst an die startende Dienst-Unit übergeben und nur eine Dienste-Unit wird für alle Verbindungen gestartet (siehe auch oben). Dieser Wert wird für Datagram-Sockets und FIFOs ignoriert, wo eine einzelne Dienste-Unit bedingungslos allen eingehenden Verkehr bearbeitet. Standardmäßig false. Zur Erhöhung der Leistung wird empfohlen, neue Daemons nur so zu schreiben, dass sie für Accept=false geeignet sind. Ein Daemon, der auf einem AF_UNIX-Socket auf Anfragen wartet, kann, aber muss nicht, close(2) auf dem empfangenen Socket vor dem Beenden aufrufen. Allerdings darf er nicht mit unlink den Socket aus dem Dateisystem entfernen. Er sollte nicht auf mit gesetztem Accept=true erhaltenen Sockets shutdown(2) aufrufen. Das Setzen von Accept=true ist hauptsächlich nützlich, um Deamons, die für die Verwendung mit inetd(8) entwickelt wurden, zu erlauben, unverändert mit Systemd-Socket-Aktivierung zu funktionieren.

    Für IPv4- und IPv6-Verbindungen wird die Umgebungsvariable REMOTE_ADDR die ferne IP-Adresse und REMOTE_PORT den fernen Port enthalten. Dies ist das gleiche Format wie von CGI benutzt. Für SOCK_RAW ist der Port das IP-Protokoll.

Writable=
    Akzeptiert ein logisches Argument. Darf nur in Zusammenhang mit ListenSpecial= verwandt werden. Falls wahr wird die festgelegte besondere Datei im Lese-/Schreibmodus geöffnet, falls falsch, im nur-Lesemodus. Standardmäßig falsch.

MaxConnections=
    Die maximale Anzahl an Verbindungen, für die gleichzeitig Dienste-Instanzen ausgeführt werden sollen, wenn Accept=true gesetzt ist. Falls mehr gleichzeitige Verbindungen eingehen, werden sie abgelehnt, bis mindestens eine bestehende Verbindung beendet ist. Diese Einstellung hat auf Sockets, die mit Accept=false konfiguriert sind oder Datagram-Sockets keinen Effekt. Standardmäßig 64.

MaxConnectionsPerSource=
    Die maximale Anzahl an Verbindungen für einen Dienst pro Quell-IP-Adresse. Dies ist sehr ähnlich zu der Direktive MaxConnections= oben. Standardmäßig deaktiviert.

KeepAlive=
    Akzeptiert ein logisches Argument. Falls wahr, wird der TCP/IP-Stapel eine Aufrechterhaltungsnachricht nach 2 Stunden (abhängig von der Konfiguration von /proc/sys/net/ipv4/tcp_keepalive_time) für alle TCP-Ströme, die auf diesem Socket akzeptiert sind, senden. Dies steuert die Socket-Option SO_KEEPALIVE (siehe socket(7) und die Dokumentation TCP-Aufrechterhaltungs-HOWTO[2] für Details). Standardmäßig false.

KeepAliveTimeSec=
    Akzeptiert Zeit (in Sekunden) als Argument. Die Verbindung muss im Leerlauf bleiben, bevor TCP das Senden von Aufrechterhaltungstestern beginnt. Dies steuert die Socket-Option TCP_KEEPIDLE (siehe socket(7) und das TCP-Aufrechterhaltungs-HOWTO[2] für Details). Standardwert ist 7200 Sekunden (2 Stunden).

KeepAliveIntervalSec=
    Akzeptiert Zeit (in Sekunden) als Argument zwischen individuellen Aufrechterhaltungstestern, falls die Socket-Option SO_KEEPALIVE auf diesem Socket gesetzt wurde. Dies steuert die Socket-Option TCP_KEEPINTVL (siehe socket(7) und das TCP-Aufrechterhaltungs-HOWTO[2] für Details). Standardwert ist 75 Sekunden.

KeepAliveProbes=
    Akzeptiert eine Ganzzahl als Argument. Sie ist die Anzahl von nicht bestätigten Testern, die gesandt werden müssen, bevor die Verbindung als tot betrachtet und die Anwendungsebene unterrichtet wird. Dies steuert die Socket-Option TCP_KEEPCNT (siehe socket(7) und das TCP-Aufrechterhaltungs-HOWTO[2] für Details). Standardwert ist 9.

NoDelay=
    Akzeptiert ein logisches Argument. Der Nagle-Algorithmus von TCP funktioniert durch Kombination einer Reihe von kleinen ausgehenden Nachrichten und dem gemeinsamen Senden. Dies steuert die Socket-Option TCP_NODELAY (siehe tcp(7)). Standardmäßig false.

Priority=
    Takes an integer argument controlling the priority for all traffic sent from this socket. This controls the SO_PRIORITY socket option (see socket(7) for details.).

DeferAcceptSec=
    Takes time (in seconds) as argument. If set, the listening process will be awakened only when data arrives on the socket, and not immediately when connection is established. When this option is set, the TCP_DEFER_ACCEPT socket option will be used (see tcp(7)), and the kernel will ignore initial ACK packets without any data. The argument specifies the approximate amount of time the kernel should wait for incoming data before falling back to the normal behavior of honoring empty ACK packets. This option is beneficial for protocols where the client sends the data first (e.g. HTTP, in contrast to SMTP), because the server process will not be woken up unnecessarily before it can take any action.

    If the client also uses the TCP_DEFER_ACCEPT option, the latency of the initial connection may be reduced, because the kernel will send data in the final packet establishing the connection (the third packet in the "three-way handshake").

    Standardmäßig deaktiviert.

ReceiveBuffer=, SendBuffer=
    Takes an integer argument controlling the receive or send buffer sizes of this socket, respectively. This controls the SO_RCVBUF and SO_SNDBUF socket options (see socket(7) for details.). The usual suffixes K, M, G are supported and are understood to the base of 1024.

IPTOS=
    Takes an integer argument controlling the IP Type-Of-Service field for packets generated from this socket. This controls the IP_TOS socket option (see ip(7) for details.). Either a numeric string or one of low-delay, throughput, reliability or low-cost may be specified.

IPTTL=
    Takes an integer argument controlling the IPv4 Time-To-Live/IPv6 Hop-Count field for packets generated from this socket. This sets the IP_TTL/IPV6_UNICAST_HOPS socket options (see ip(7) and ipv6(7) for details.)

Mark=
    Takes an integer value. Controls the firewall mark of packets generated by this socket. This can be used in the firewall logic to filter packets from this socket. This sets the SO_MARK socket option. See iptables(8) for details.

ReusePort=
    Takes a boolean value. If true, allows multiple bind(2)s to this TCP or UDP port. This controls the SO_REUSEPORT socket option. See socket(7) for details.

SmackLabel=, SmackLabelIPIn=, SmackLabelIPOut=
    Takes a string value. Controls the extended attributes "security.SMACK64", "security.SMACK64IPIN" and "security.SMACK64IPOUT", respectively, i.e. the security label of the FIFO, or the security label for the incoming or outgoing connections of the socket, respectively. See Smack.txt[3] for details.

SELinuxContextFromNet=
    Takes a boolean argument. When true, systemd will attempt to figure out the SELinux label used for the instantiated service from the information handed by the peer over the network. Note that only the security level is used from the information provided by the peer. Other parts of the resulting SELinux context originate from either the target binary that is effectively triggered by socket unit or from the value of the SELinuxContext= option. This configuration option only affects sockets with Accept= mode set to "true". Also note that this option is useful only when MLS/MCS SELinux policy is deployed. Defaults to "false".

PipeSize=
    Takes a size in bytes. Controls the pipe buffer size of FIFOs configured in this socket unit. See fcntl(2) for details. The usual suffixes K, M, G are supported and are understood to the base of 1024.

MessageQueueMaxMessages=, MessageQueueMessageSize=
    These two settings take integer values and control the mq_maxmsg field or the mq_msgsize field, respectively, when creating the message queue. Note that either none or both of these variables need to be set. See mq_setattr(3) for details.

FreeBind=
    Takes a boolean value. Controls whether the socket can be bound to non-local IP addresses. This is useful to configure sockets listening on specific IP addresses before those IP addresses are successfully configured on a network interface. This sets the IP_FREEBIND socket option. For robustness reasons it is recommended to use this option whenever you bind a socket to a specific IP address. Defaults to false.

Transparent=
    Takes a boolean value. Controls the IP_TRANSPARENT socket option. Defaults to false.

Broadcast=
    Takes a boolean value. This controls the SO_BROADCAST socket option, which allows broadcast datagrams to be sent from this socket. Defaults to false.

PassCredentials=
    Takes a boolean value. This controls the SO_PASSCRED socket option, which allows AF_UNIX sockets to receive the credentials of the sending process in an ancillary message. Defaults to false.

PassSecurity=
    Takes a boolean value. This controls the SO_PASSSEC socket option, which allows AF_UNIX sockets to receive the security context of the sending process in an ancillary message. Defaults to false.

TCPCongestion=
    Takes a string value. Controls the TCP congestion algorithm used by this socket. Should be one of "westwood", "veno", "cubic", "lp" or any other available algorithm supported by the IP stack. This setting applies only to stream sockets.

ExecStartPre=, ExecStartPost=
    Takes one or more command lines, which are executed before or after the listening sockets/FIFOs are created and bound, respectively. The first token of the command line must be an absolute filename, then followed by arguments for the process. Multiple command lines may be specified following the same scheme as used for ExecStartPre= of service unit files.

ExecStopPre=, ExecStopPost=
    Additional commands that are executed before or after the listening sockets/FIFOs are closed and removed, respectively. Multiple command lines may be specified following the same scheme as used for ExecStartPre= of service unit files.

TimeoutSec=
    Konfiguriert die Zeit, die auf das Beenden der in ExecStartPre=, ExecStartPost=, ExecStopPre= und ExecStopPost= festgelegten Befehle gewartet wird. Falls ein Befehl sich nicht innerhalb der konfigurierten Zeit beendet, wird der Socket als fehlgeschlagen betrachtet und wieder heruntergefahren. Alle noch laufenden Befehle werden zwangsweise mittels SIGTERM und nach einer weiteren Verzögerung dieser Zeitdauer mit SIGKILL beendet. (Siehe KillMode= in systemd.kill(5).) Akzeptiert einen einheitenfreien Wert in Sekunden oder einen Zeitdauerwert wie »5min 20s«. Durch Übergabe von »0« wird die Zeitüberschreitungslogik deaktiviert. Standardmäßig DefaultTimeoutStartSec= aus der Verwalterkonfigurationsdatei (siehe systemd-system.conf(5)).

Service=
    Specifies the service unit name to activate on incoming traffic. This setting is only allowed for sockets with Accept=no. It defaults to the service that bears the same name as the socket (with the suffix replaced). In most cases, it should not be necessary to use this option. Note that setting this parameter might result in additional dependencies to be added to the unit (see above).

RemoveOnStop=
    Takes a boolean argument. If enabled, any file nodes created by this socket unit are removed when it is stopped. This applies to AF_UNIX sockets in the file system, POSIX message queues, FIFOs, as well as any symlinks to them configured with Symlinks=. Normally, it should not be necessary to use this option, and is not recommended as services might continue to run after the socket unit has been terminated and it should still be possible to communicate with them via their file system node. Defaults to off.

Symlinks=
    Takes a list of file system paths. The specified paths will be created as symlinks to the AF_UNIX socket path or FIFO path of this socket unit. If this setting is used, only one AF_UNIX socket in the file system or one FIFO may be configured for the socket unit. Use this option to manage one or more symlinked alias names for a socket, binding their lifecycle together. Note that if creation of a symlink fails this is not considered fatal for the socket unit, and the socket unit may still start. If an empty string is assigned, the list of paths is reset. Defaults to an empty list.

FileDescriptorName=
    Assigns a name to all file descriptors this socket unit encapsulates. This is useful to help activated services identify specific file descriptors, if multiple fds are passed. Services may use the sd_listen_fds_with_names(3) call to acquire the names configured for the received file descriptors. Names may contain any ASCII character, but must exclude control characters and ":", and must be at most 255 characters in length. If this setting is not used, the file descriptor name defaults to the name of the socket unit, including its .socket suffix.

TriggerLimitIntervalSec=, TriggerLimitBurst=
    Configures a limit on how often this socket unit my be activated within a specific time interval. The TriggerLimitIntervalSec= may be used to configure the length of the time interval in the usual time units "us", "ms", "s", "min", "h", ... and defaults to 2s (See systemd.time(7) for details on the various time units understood). The TriggerLimitBurst= setting takes a positive integer value and specifies the number of permitted activations per time interval, and defaults to 200 for Accept=yes sockets (thus by default permitting 200 activations per 2s), and 20 otherwise (20 activations per 2s). Set either to 0 to disable any form of trigger rate limiting. If the limit is hit, the socket unit is placed into a failure mode, and will not be connectible anymore until restarted. Note that this limit is enforced before the service activation is enqueued.

Lesen Sie systemd.exec(5) und systemd.kill(5) für weitere Einstellungen.

SIEHE AUCH

systemd(1), systemctl(1), systemd.unit(5), systemd.exec(5), systemd.kill(5), systemd.resource-control(5), systemd.service(5), systemd.directives(7), sd_listen_fds(3), sd_listen_fds_with_names(3)

For more extensive descriptions see the "systemd for Developers" series: Socket Activation[4], Socket Activation, part II[5], Converting inetd Services[6], Socket Activated Internet Services and OS Containers[7].

ANMERKUNGEN

1.  USB FunctionFS
    https://www.kernel.org/doc/Documentation/usb/functionfs.txt

2.  TCP-Aufrechterhaltungs-HOWTO
    http://www.tldp.org/HOWTO/html_single/TCP-Keepalive-HOWTO/

3.  Smack.txt
    https://www.kernel.org/doc/Documentation/security/Smack.txt

4.  Socket-Aktivierung
    http://0pointer.de/blog/projects/socket-activation.html

5.  Socket-Aktivierung, Teil II
    http://0pointer.de/blog/projects/socket-activation2.html

6.  Inetd-Dienste-Konvertierung
    http://0pointer.de/blog/projects/inetd.html

7.  Socket-aktivierte Internet-Dienste und Betriebssystemcontainer
    http://0pointer.de/blog/projects/socket-activated-containers.html

ÜBERSETZUNG
Die deutsche Übersetzung dieser Handbuchseite wurde von Helge Kreutzmann <debian@helgefjell.de> erstellt. Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen. Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an <debian-l10n-german@lists.debian.org>.