X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=man%2Fsystemd.socket.xml;h=d645de45e10ae074a1c64412c9c29450d045edd1;hb=2139694e823935d3ac1479aa7c9a78ee3ffdc759;hp=419a38caa71a8f5dab2ce3240a0d41a7b1c0c830;hpb=79640424059328268b9fb6c5fa8eb777b27a177e;p=elogind.git
diff --git a/man/systemd.socket.xml b/man/systemd.socket.xml
index 419a38caa..d645de45e 100644
--- a/man/systemd.socket.xml
+++ b/man/systemd.socket.xml
@@ -78,28 +78,33 @@
commands are executed
in, and in
systemd.kill5,
- which define the way the processes are
- terminated, and in
- systemd.cgroup5,
- which configure control group settings for the
- processes of the service.
-
- For each socket file a matching service file
- (see
+ which define the way the processes are terminated, and
+ in
+ systemd.resource-control5,
+ which configure resource control settings for the
+ processes of the socket.
+
+ For each socket file, a matching service file
+ 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 the
+ option described below.
+ Depending on the setting of the
+ 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 an introduction.
Note that the daemon software configured for
socket activation with socket units needs to be able
@@ -127,8 +144,8 @@
sd_listen_fds3
for details) or via the traditional
inetd8-style
- socket passing (i.e. sockets passed in via STDIN and
- STDOUT, using StandardInput=socket
+ socket passing (i.e. sockets passed in via standard input and
+ output, using StandardInput=socket
in the service file).
@@ -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.
@@ -456,12 +484,15 @@
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
+ argument controlling the receive or
+ send buffer sizes of this socket,
+ respectively. This controls the
+ SO_RCVBUF and SO_SNDBUF socket options
+ (see
socket7
- for details.).
+ for details.). The usual suffixes K,
+ M, G are supported and are understood
+ to the base of 1024.
@@ -540,12 +571,14 @@
PipeSize=
- Takes an integer
- value. Controls the pipe buffer size
+ Takes an size in
+ bytes. Controls the pipe buffer size
of FIFOs configured in this socket
unit. See
fcntl2
- for details.
+ for details. The usual suffixes K, M,
+ G are supported and are understood to
+ the base of 1024.
@@ -679,19 +712,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.
@@ -712,7 +748,7 @@
systemd.unit5,
systemd.exec5,
systemd.kill5,
- systemd.cgroup5,
+ systemd.resource-control5,
systemd.service5,
systemd.directives7