X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=man%2Fsystemd.socket.xml;h=946c30a757a69390d07abdaf17acc953c7b83a86;hp=8c88d9f8aa37defa70ccc9e796fe8aa9bb8f8e15;hb=3cf148f307e6450aa3411968f59a2563fe9cb154;hpb=3fde5f30bda2a70d97f3dc8fa918e42e1c07cc2c diff --git a/man/systemd.socket.xml b/man/systemd.socket.xml index 8c88d9f8a..946c30a75 100644 --- a/man/systemd.socket.xml +++ b/man/systemd.socket.xml @@ -85,21 +85,26 @@ processes of the socket. For each socket file a matching service file - (see + must exist, describing the service to start on + incoming traffic on the socket (see systemd.service5 - for details) must exist, describing the service to - start on incoming traffic on the socket. Depending on - the setting of (see below), - this must either be named like the socket unit, but - with the suffix replaced; or it must be a template - file named the same way. Example: a socket file + for more information about .service files). The name + of the .service unit is by default the same as the + name of the .socket unit, but can be altered with + option described below. + Depending on the setting of + option described below, this .service unit must either + be named like the .socket unit, but with the suffix + replaced, unless overridden with + ; or it must be a template + unit named the same way. Example: a socket file foo.socket needs a matching service foo.service if is set. If - is set, a service template - file foo@.service must exist from - which services are instantiated for each incoming - connection. + is set, a service + template file foo@.service must + exist from which services are instantiated for each + incoming connection. Unless DefaultDependencies= is set to , socket units will @@ -116,9 +121,21 @@ boot or late system shutdown should disable this option. + Socket units will have a + Before= dependency on the service + which they trigger added implicitly. No implicit + WantedBy= or + RequiredBy= dependency from the + socket to the service is added. This means that the + service may be started without the socket, in which + case it must be able to open sockets by itself. To + prevent this, an explicit Requires= + dependency may be added. + Socket units may be used to implement on-demand starting of services, as well as parallelized starting - of services. + of services. See the blog stories linked at the end + for introduction. Note that the daemon software configured for socket activation with socket units needs to be able @@ -213,7 +230,7 @@ traffic on any of the sockets will trigger service activation, and all listed sockets will be passed to the - service, regardless whether there is + service, regardless of whether there is incoming traffic on them or not. If the empty string is assigned to any of these options, the list of addresses @@ -221,12 +238,23 @@ of any of these options will have no effect. + It is also possible to have more + than one socket unit for the same + service when using + Service=, and the + service will receive all the sockets + configured in all the socket units. + Sockets configured in one unit are + passed in the order of configuration, + but no ordering between socket units + is specified. + If an IP address is used here, it is often desirable to listen on it before the interface it is configured on is up and running, and even - regardless whether it will be up and - running ever at all. To deal with this + regardless of whether it will be up and + running at any point. To deal with this it is recommended to set the FreeBind= option described below. @@ -679,19 +707,22 @@ Takes a unit-less value in seconds, or a time span value such as "5min 20s". Pass 0 to disable the timeout - logic. Defaults to - 90s. + logic. Defaults to TimeoutStartSec= from the + manager configuration file. Service= Specifies the service unit name to activate on incoming - traffic. This defaults to the service - that bears the same name as the socket - (ignoring the different suffixes). In - most cases it should not be necessary - to use this option. + 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.