Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
PLUMBER(4)		   Kernel Interfaces Manual		    PLUMBER(4)

       plumber - file system for interprocess messaging

       plumber [ -p plumbing ]

       The  plumber  is	 a  user-level	file  server  that receives, examines,
       rewrites, and dispatches	plumb(7) messages between programs.   Its  be-
       havior is programmed by a plumbing file (default	$HOME/lib/plumbing) in
       the format of plumb(7).

       Its services are	posted via 9pserve(4) as plumb.	 and  consist  of  two
       pre-defined  files,  plumb/send	and  plumb/rules,  and a set of	output
       ports for dispatching messages to applications.

       Programs	use fswrite (see 9pclient(3)) to deliver messages to the  send
       file,  and fsread to receive them from the corresponding	port.  For ex-
       ample, sam(1)'s plumb menu item or the B	command	cause a	message	to  be
       sent  to	 plumb/send; sam in turn reads from, by	convention, plumb/edit
       to receive messages about files to open.

       A copy of each message is sent to each client that has the  correspond-
       ing port	open.  If none has it open, and	the rule has a plumb client or
       plumb start rule, that rule is applied.	A plumb	client rule causes the
       specified  command  to  be  run and the message to be held for delivery
       when the	port is	opened.	 A plumb start rule runs the command but  dis-
       cards  the  message.   If  neither start	or client is specified and the
       port is not open, the message is	discarded and a	 write	error  is  re-
       turned to the sender.

       The  set	of output ports	is determined dynamically by the specification
       in the plumbing rules file: a port is created for each unique  destina-
       tion of a plumb to rule.

       The  set	 of rules currently active may be examined by reading the file
       plumb/rules; appending to this file adds	new rules to  the  set,	 while
       creating	 it  (opening  it  with	OTRUNC)	clears the rule	set.  Thus the
       rule set	may be edited dynamically  with	 a  traditional	 text  editor.
       However,	 ports	are  never  deleted dynamically; if a new set of rules
       does not	include	a port that was	defined	in earlier  rules,  that  port
       will still exist	(although no new messages will be delivered there).

	      default rules file

	      directory	to search for files in include statements

       plumb  mount name for plumber(4).


       plumb(1), plumb(3), plumb(7)



Want to link to this manual page? Use this URL:

home | help