SOCKDEBUG(8)
β¨ SOCKDEBUG(8) β¨
ok so like, this is a page from the NUT Manual β yes bestie, NUT is the Network UPS Tools project, it's giving very serious uninterruptible-power-supply energy π
β and the page is literally called sockdebug.
πΈ NAME πΈ
sockdebug β a simple developer/troubleshooting aid utility to communicate with a NUT driver using the socket protocol π¦
β¨ SYNOPSIS β¨
sockdebug socketname
For example (WIN32 and POSIX builds):
:; sockdebug.exe dummy-ups-UPS1
For example (POSIX-compliant systems using an alternate state path):
:; sockdebug /var/state/ups/dummy-ups-UPS1
π DESCRIPTION π
okay so sockdebug is a tool that gets built when NUT's configure --with-dev is enabled. alternatively you can just build it by calling make sockdebug in the root of the build workspace. which actual source files get used depends on the platform, no cap.
what does it do tho? it connects to a NUT driver using the socket protocol over a Unix socket or a Windows pipe β literally the same way the upsd(8) data server talks to the locally running drivers so it can represent them on the network further using the common NUT protocol of the Network UPS Tools project, and also the same way driver programs can talk to their already running instances to implement commands like live reload-or-error. iykyk π
so basically this tool lets a developer or troubleshooter watch the broadcast updates that the driver is emitting, and also issue unicast commands and receive replies. pro tip from the page itself: during an interactive investigation session, you may want to command NOBROADCAST first π (because the broadcast chatter is a lot, bestie).
for more deets, go read the docs/sock-protocol.txt file in the NUT sources π
π OPTIONS π
sockdebug accepts (and requires) the following option:
socketnameβ Either a full path (in POSIX builds) or the base name of device socket/pipe (on all platforms), comprised of adrivername-devicenametuple. like, e.g.dummy-ups-UPS1for adummy-upsdriver instance handling anUPS1device configuration β which in turn may originate in theups.conffile, or be dynamically constructed for tests by calling the driver program with a-s TMPCLI option. slay π On POSIX systems, if this argument only represents a base name and not a full path to the Unix socket file, the tool should first look for the file in the current directory, and then fall back to the configured (built-in) state path or the value of theNUT_STATEPATHenvironment variable, if set. e.g.:
:; NUT_STATEPATH=/tmp ./server/sockdebug dummy-ups-UPS1
no socketname, no vibes. it's required, fr fr π
π«Ά AUTHORS π«Ά
This manual page was written by Jim Klimov <jimklimov+nut@gmail.com>.
The program is currently maintained as two separate sources, with one of them used for a build depending on the target platform:
server/sockdebug.c(POSIX version) was originally written by Russell Kroll<rkroll@exploits.org>, andserver/pipedebug.c(Windows version) was originally written by Frederic Bohe<fredericbohe@eaton.com>.
like, two whole origin stories for one tiny utility, we love a dual-platform icon π
π SEE ALSO π
πΈ Internet resources:
The NUT (Network UPS Tools) home page: https://www.networkupstools.org/historic/v2.8.5/
and that's the whole page bestie, mwah π this was Network UPS Tools 2.8.5, dated 10/07/2026, and honestly? iconic. periodt. π
π¦ where this page comes from
- fedora 43: nut 2.8.5-9.fc43 Β· GPL-2.0-or-later AND GPL-3.0-or-later
- fedora 43: nut 2.8.5-9.fc43 Β· GPL-2.0-or-later AND GPL-3.0-or-later
- fedora 44: nut 2.8.5-9.fc44 Β· GPL-2.0-or-later AND GPL-3.0-or-later
- fedora 44: nut 2.8.5-9.fc44 Β· GPL-2.0-or-later AND GPL-3.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms