SYSTEMD-STDIO-BRIDGE(1)
๐ SYSTEMD-STDIO-BRIDGE(1) ๐
okay bestie, so this is the manual page for systemd-stdio-bridge from the systemd crew โ and no cap, it's basically a little matchmaker for D-Bus connections. let's get into it ๐ซถ
โจ NAME โจ
systemd-stdio-bridge โ a D-Bus proxy, that's the whole job description ๐
๐ธ SYNOPSIS ๐ธ
systemd-stdio-bridge [OPTIONS...]
๐ฆ DESCRIPTION ๐ฆ
so what does it actually do? systemd-stdio-bridge implements a proxy between STDIN/STDOUT and a D-Bus bus. the way it works is: when it starts up, it expects to receive an open connection via STDIN/STDOUT, and then it goes and creates a brand-new connection to the bus you told it to use. after that it just forwards messages back and forth between the two connections like the most reliable group-chat admin you've ever met ๐
this program is literally built for socket activation: that first connection can be a pipe or a socket, and it must be passed either as standard input, or as an open file descriptor following the protocol described in sd_listen_fds(3).
the second connection? by default it goes to the local system bus, but you can influence that whole situation with the --user, --system, --machine=, and --bus-path= options described down below ๐
oh and also โ sd-bus(3) uses systemd-stdio-bridge to forward D-Bus connections over ssh(1), or to connect to the bus of a different user. see sd_bus_set_address(3). iconic behavior honestly โจ
๐ OPTIONS ๐
here's everything it understands, bestie. the following options are understood:
--userโ talk to the service manager of the calling user, rather than the service manager of the system. it's giving "my stuff, my rules" ๐--systemโ talk to the service manager of the system. this is the implied default, so if you say nothing, this is what you get.-M,--machine=โ execute the operation on a local container. you specify a container name to connect to, and you can optionally prefix it with a user name to connect as, plus a separating"@"character. if you use the special string".host"in place of the container name, a connection to the local system is made (which is genuinely useful if you wanna connect to a specific user's user bus, like:"--user --machine=lennart@.host"). if you don't use the"@"syntax, the connection is made as root user. if you do use the"@"syntax, either the left hand side or the right hand side may be omitted (but not both), and in that case the local user name and".host"are implied. so many little rules, but they all slay ๐ง-p PATH,--bus-path=PATHโ path to the bus address. default:"unix:path=/run/dbus/system_bus_socket"
added in version 251 โญ
-q,--quietโ suppresses error logging on failure. silence is golden, bestie ๐คซ
added in version 259 โญ
-h,--helpโ print a short help text and exit. the "just tell me what to do" button.--versionโ print a short version string and exit. the "who even are you" button.
๐ EXIT STATUS ๐
on success, 0 is returned. a non-zero failure code otherwise. that's it, that's the whole vibe check โ zero means we ate, anything else means we did not ๐ญ
๐ SEE ALSO ๐
dbus-daemon(1)dbus-broker(1)- D-Bus[1]
systemd(1)
๐ NOTES ๐
and that's the whole page, bestie!! this one's from systemd 262.1 โ go forth and proxy those D-Bus connections, you absolute main character ๐๐
๐ฆ where this page comes from
- arch rolling: systemd 262.1-1 ยท LGPL-2.1-or-later AND CC0-1.0 AND GPL-2.0-or-later AND MIT-0
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms