S6-SUDOC(8)
π S6-SUDOC(8) π
okay so bestie, welcome to s6-sudoc β a page from the System Manager's Manual, and honestly? it's giving "tiny tool, big responsibilities." let's get into it π«Ά
β¨ NAME β¨
s6-sudoc β the way you talk to a peer s6-sudod(8) program over a Unix socket, passing it command-line arguments, environment variables and standard descriptors π
πΈ SYNOPSIS πΈ
s6-sudoc [-e] [-t timeoutconn] [-T timeoutrun] [args...]
π¦ DESCRIPTION π¦
so here's the vibe. s6-sudoc transmits its standard input, standard output and standard error via fd-passing over a Unix socket that must be open on its descriptors 6 and 7. it fully expects an s6-sudod(8) process to be on the other side receiving them, like a little handoff π€
it also transmits its command-line arguments args..., and also its environment by default. but heads up β s6-sudod(8) will not necessarily accept all the environment variables that s6-sudoc tries to transmit. no cap, some of them just don't make the cut π
then s6-sudoc waits for the server program run by s6-sudod(8) to finish. it exits with the same exit code as the server program. and if the server program is killed by a signal, s6-sudoc kills itself with the same signal. matching energy, periodt π
β οΈ okay this next part is the serious bit, so listen up. ifs6-sudocis killed, or exits aftertimeoutrunmilliseconds, while the server program is still running,s6-sudod(8)will send aSIGTERMand aSIGCONTto the server program β but this does not guarantee that it will die. if the server program keeps running, it might still read from the file that wass6-sudoc's stdin, or write to the files that weres6-sudoc's stdout or stderr. this is a potential security risk π administrators should audit their server programs to make sure this does not happen. fr fr, go check.
more generally, anything using signals or terminals will not be handled transparently by the s6-sudoc + s6-sudod(8) mechanism. the mechanism was designed to allow programs to gain privileges in specific situations: short-lived, simple, noninteractive processes. it was not designed to emulate the full suid functionality, and it will not go out of its way to do so. it knows what it is and what it isn't π
π OPTIONS π
-eβ do not attempt to transmit any environment variables tos6-sudod(8). keeping it minimal, love that for you β¨-ttimeoutconnβ ifs6-sudod(8)has not managed to process the given information and start the server program aftertimeoutconnmilliseconds, give up. by default,timeoutconnis0, meaning infinite. side note: there is no reason to set up a nonzerotimeoutconnwith a large value βs6-sudod(8)is not supposed to block, and the option is only there to protect against ill-written services π§-Ttimeoutrunβ if the server program has not exited aftertimeoutrunmilliseconds, give up. by default,timeoutrunis0, meaning infinite β³
π SEE ALSO π
this man page is ported from the authoritative documentation at: https://skarnet.org/software/s6/s6-sudoc.html
π AUTHORS π
- Laurent Bercot
- Alexis
<flexibeast@gmail.com>(man page port)
and that's the whole page, bestie π this one's from Debian, dated September 29, 2021 β so go forth responsibly, audit your server programs, and slay πβ
π¦ 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