S6-IPCSERVERD(8)
π s6-ipcserverd(8) π
β¨ NAME β¨
okay so bestie, this is s6-ipcserverd β serving part of the s6-ipcserver(8) super-server. That's the whole vibe. π«Ά
πΈ SYNOPSIS πΈ
s6-ipcserverd [-1] [-v verbosity] [-P | -p] [-c maxconn]
[-C localmaxconn] prog...
π¦ DESCRIPTION π¦
<pink>s6-ipcserverd</pink> assumes its stdin is a bound and listening Unix domain socket, and it accepts connections from clients connecting to it, forking a program to handle each connection.
It accepts connections from clients to an already bound and listening SOCK_STREAM Unix domain socket that is its standard input.
For every client connection to this socket, it forks. The child sets some environment variables, then executes prog... with stdin reading from the socket and stdout writing to it.
Depending on the verbosity level, it logs what it does to stderr.
It runs until killed by a signal. Depending on the received signal, it may kill its children before exiting.
Unlike its close cousin ipcserver, <pink>s6-ipcserverd</pink> does not perform operations such as access control. Those are delegated to the s6-ipcserver-access(8) program.
<pink>s6-ipcserverd</pink> can be used to set up s6-local-service(7)s.
<pink>s6-ipcserverd</pink> is meant to be execve'd into by a program that gets the listening socket. That program is normally s6-ipcserver-socketbinder(8), which creates the socket itself; but it can be a different one if the socket is to be retrieved by another means, for instance by fd-passing from an fd-holding daemon (some people call this βsocket activationβ).
π¦ Signals
SIGTERMβ exit.SIGHUPβ send aSIGTERMand aSIGCONTto all children.SIGQUITβ send aSIGTERMand aSIGCONTto all children, then exit.SIGABRTβ send aSIGKILLto all children, then exit.
π OPTIONS π
-1β write a newline to stdout, and close stdout, right before entering the client-accepting loop. If stdout is suitably redirected, this can be used by monitoring programs to check when the server is accepting connections. Sees6-notifywhenup(7)for more information on readiness notification.-vverbosity β be more or less verbose. verbosity can be0(quiet),1(normal), or2(verbose).-Pβ disable client credentials lookups. TheIPCREMOTEEUIDandIPCREMOTEEGIDenvironment variables will be unset in every instance ofprog.... This is the portable option, because not every system supports credential lookup across Unix domain sockets; but it is not as secure.-pβ enable client credentials lookups. This is the default; it works at least on Linux, Solaris, and *BSD systems. On systems that do not support it, every connection attempt will fail with a warning message.-cmaxconn β accept at most maxconn concurrent connections. Default is40. It is impossible to set it higher than1000.-Clocalmaxconn β accept at most localmaxconn connections from the same user ID. Default is40. It is impossible to set it higher than maxconn.
π ENVIRONMENT π
For each connection, an instance of prog... is spawned with the following variables set:
PROTOβ always set toIPC.IPCREMOTEEUIDβ set to the effective UID of the client, unless credentials lookups have been disabled.IPCREMOTEEGIDβ set to the effective GID of the client, unless credentials lookups have been disabled.IPCREMOTEPATHβ set to the path associated with the remote socket, if any. Be aware that it may contain arbitrary characters.IPCCONNNUMβ set to the number of connections originating from the same user (i.e. same uid).
If client credentials lookup has been disabled, IPCREMOTEEUID and IPCREMOTEEGID will be set, but empty.
π SEE ALSO π
<pink>s6-accessrules-cdb-from-fs(8)</pink>, <pink>s6-accessrules-fs-from-cdb(8)</pink>, <pink>s6-connlimit(8)</pink>, <pink>s6-ioconnect(8)</pink>, <pink>s6-ipcclient(8)</pink>, <pink>s6-ipcserver(8)</pink>, <pink>s6-ipcserver-access(8)</pink>, <pink>s6-ipcserver-socketbinder(8)</pink>
This man page is ported from the authoritative documentation at: https://skarnet.org/software/s6/s6-ipcserverd.html
π AUTHORS π
- Laurent Bercot
- Alexis
<flexibeast@gmail.com>(man page port)
xoxo bestie π this page is from Debian, dated September 29, 2021, and it's the S6-IPCSERVERD(8) manual page. periodt. π
π¦ where this page comes from
- nixpkgs unstable: s6 2.15.1.0
- nixpkgs unstable: s6-man-pages 2.14.0.1.4
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms