9PSERVE(4)
Hi bestie! This is the 9PSERVE(4) page from the Kernel Interfaces Manual β section 4, Unix kernel interfaces β and weβre about to make 9P multiplexing make sense. π¦β¨
π NAME π
9pserve β announce and multiplex 9P service
β¨ SYNOPSIS β¨
9pserve [ -lnv ] [ -A aname afid ] [ -c addr ] [ -M msize ] addr
π¦ DESCRIPTION π¦
Okay so picture this: on Plan 9, when a user-level file server mounts itself into a name space or posts itself in /srv, the Plan 9 kernel is the one doing the multiplexing β it takes the potentially many processes accessing the server and folds them into a single 9P conversation. The user-level server doesnβt have to worry about how many processes are hitting it, or about cleaning up after a process when that process exits unexpectedly. Iconic behavior, honestly. π
On Unix, 9pserve steps in and takes the place of the Plan 9 kernel: it multiplexes clients onto a single server conversation and cleans up after clients when they hang up unexpectedly. No cap, thatβs the whole vibe. π
9pserve announces a 9P service on addr and multiplexes any 9P clients connecting to addr into a single conversation with a 9P server on 9pserveβs standard input and output. When a client hangs up, 9pserve flushes any outstanding 9P transactions and clunks any outstanding fids belonging to the client. Cleanup queen fr fr. π§Ήβ¨
Real talk, bestie:9pserveis typically not invoked directly β usepost9pservice(3)instead. π«Ά
π The options are: π
-lβ logging; write a debugging log toaddr.log.-nβ no authentication; respond toTauthmessages with an error (seeattach(9P)).-vβ verbose; more verbose when repeated.-Aβ rewrite all attach messages to use aname and afid; used to implementsrv(4)βs-aoption.-cβ multiplex clients onto a single connection to addr, instead of standard input and output.-Mβ do not initialize the connection with aTversionmessage; instead assume9P2000and a maximum message size of msize.
πΈ SEE ALSO πΈ
β SOURCE β
/src/cmd/9pserve.c
Sign-off time π«Ά This page is 9PSERVE(4) from the Kernel Interfaces Manual, source file /src/cmd/9pserve.c. The footer just says 9PSERVE(4) β no date on it β so thatβs the whole page, bestie π
β¨
π¦ where this page comes from
- alpine 3.24: plan9port-doc 0_git20260208-r0 Β· LPL-1.02
- arch rolling: plan9port 20261021-2 Β· custom
- nixos 26.05: plan9port 0-unstable-2025-11-10
- nixos 26.05: plan9port-wayland 0-unstable-2025-11-26
- nixpkgs unstable: plan9port 0-unstable-2025-11-10
- nixpkgs unstable: plan9port-wayland 0-unstable-2025-11-26
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms