mirror of
https://github.com/9fans/plan9port.git
synced 2025-01-30 11:54:57 +00:00
122 lines
5.8 KiB
HTML
122 lines
5.8 KiB
HTML
<head>
|
|
<title>plumber(4) - Plan 9 from User Space</title>
|
|
<meta content="text/html; charset=utf-8" http-equiv=Content-Type>
|
|
</head>
|
|
<body bgcolor=#ffffff>
|
|
<table border=0 cellpadding=0 cellspacing=0 width=100%>
|
|
<tr height=10><td>
|
|
<tr><td width=20><td>
|
|
<tr><td width=20><td><b>PLUMBER(4)</b><td align=right><b>PLUMBER(4)</b>
|
|
<tr><td width=20><td colspan=2>
|
|
<br>
|
|
<p><font size=+1><b>NAME </b></font><br>
|
|
|
|
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
|
|
|
plumber – file system for interprocess messaging<br>
|
|
|
|
</table>
|
|
<p><font size=+1><b>SYNOPSIS </b></font><br>
|
|
|
|
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
|
|
|
<tt><font size=+1>plumber</font></tt> [ <tt><font size=+1>−p</font></tt> <i>plumbing</i> ]<br>
|
|
|
|
</table>
|
|
<p><font size=+1><b>DESCRIPTION </b></font><br>
|
|
|
|
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
|
|
|
The <i>plumber</i> is a user-level file server that receives, examines,
|
|
rewrites, and dispatches <a href="../man7/plumb.html"><i>plumb</i>(7)</a> messages between programs. Its
|
|
behavior is programmed by a <i>plumbing</i> file (default <tt><font size=+1>$HOME/lib/plumbing</font></tt>)
|
|
in the format of <a href="../man7/plumb.html"><i>plumb</i>(7)</a>.
|
|
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
|
|
|
|
Its services are posted via <a href="../man4/9pserve.html"><i>9pserve</i>(4)</a> as <tt><font size=+1>plumb</font></tt>. and consist of
|
|
two pre-defined files, <tt><font size=+1>plumb/send</font></tt> and <tt><font size=+1>plumb/rules</font></tt>, and a set of
|
|
output <i>ports</i> for dispatching messages to applications.
|
|
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
|
|
|
|
Programs use <tt><font size=+1>fswrite</font></tt> (see <a href="../man3/9pclient.html"><i>9pclient</i>(3)</a>) to deliver messages to
|
|
the <tt><font size=+1>send</font></tt> file, and <i>fsread</i> to receive them from the corresponding
|
|
port. For example, <a href="../man1/sam.html"><i>sam</i>(1)</a>’s <tt><font size=+1>plumb</font></tt> menu item or the <tt><font size=+1>B</font></tt> command cause
|
|
a message to be sent to <tt><font size=+1>plumb/send</font></tt>; <tt><font size=+1>sam</font></tt> in turn reads from, by
|
|
convention, <tt><font size=+1>plumb/edit</font></tt> to receive
|
|
messages about files to open.
|
|
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
|
|
|
|
A copy of each message is sent to each client that has the corresponding
|
|
port open. If none has it open, and the rule has a <tt><font size=+1>plumb client</font></tt>
|
|
or <tt><font size=+1>plumb start</font></tt> rule, that rule is applied. A <tt><font size=+1>plumb client</font></tt> rule
|
|
causes the specified command to be run and the message to be held
|
|
for delivery when the port is opened. A
|
|
<tt><font size=+1>plumb start</font></tt> rule runs the command but discards the message. If
|
|
neither <tt><font size=+1>start</font></tt> or <tt><font size=+1>client</font></tt> is specified and the port is not open,
|
|
the message is discarded and a write error is returned to the
|
|
sender.
|
|
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
|
|
|
|
The set of output ports is determined dynamically by the specification
|
|
in the plumbing rules file: a port is created for each unique
|
|
destination of a <tt><font size=+1>plumb to</font></tt> rule.
|
|
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
|
|
|
|
The set of rules currently active may be examined by reading the
|
|
file <tt><font size=+1>plumb/rules</font></tt>; appending to this file adds new rules to the
|
|
set, while creating it (opening it with <tt><font size=+1>OTRUNC</font></tt>) 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).<br>
|
|
|
|
</table>
|
|
<p><font size=+1><b>FILES </b></font><br>
|
|
|
|
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
|
|
|
<tt><font size=+1>$HOME/lib/plumbing</font></tt> default rules file<br>
|
|
<tt><font size=+1>/usr/local/plan9/plumb<br>
|
|
</font></tt>
|
|
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
|
|
|
|
|
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
|
|
|
directory to search for files in <tt><font size=+1>include</font></tt> statements<br>
|
|
|
|
</table>
|
|
|
|
</table>
|
|
<tt><font size=+1>plumb</font></tt> mount name for <a href="../man4/plumber.html"><i>plumber</i>(4)</a>.<br>
|
|
|
|
</table>
|
|
<p><font size=+1><b>SOURCE </b></font><br>
|
|
|
|
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
|
|
|
<tt><font size=+1>/usr/local/plan9/src/cmd/plumb<br>
|
|
</font></tt>
|
|
</table>
|
|
<p><font size=+1><b>SEE ALSO </b></font><br>
|
|
|
|
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
|
|
|
<a href="../man1/plumb.html"><i>plumb</i>(1)</a>, <a href="../man3/plumb.html"><i>plumb</i>(3)</a>, <a href="../man7/plumb.html"><i>plumb</i>(7)</a><br>
|
|
|
|
</table>
|
|
|
|
<td width=20>
|
|
<tr height=20><td>
|
|
</table>
|
|
<!-- TRAILER -->
|
|
<table border=0 cellpadding=0 cellspacing=0 width=100%>
|
|
<tr height=15><td width=10><td><td width=10>
|
|
<tr><td><td>
|
|
<center>
|
|
<a href="../../"><img src="../../dist/spaceglenda100.png" alt="Space Glenda" border=1></a>
|
|
</center>
|
|
</table>
|
|
<!-- TRAILER -->
|
|
</body></html>
|