Named Pipes across NFS?

Frank Peters fwp1 at CC.MsState.Edu
Fri Apr 26 23:04:38 AEST 1991


it1 at Isis.MsState.Edu (Tim Tsai) writes:

>barmar at think.com (Barry Margolin) writes:
>>In article <it1.672572450 at Isis.MsState.Edu> it1 at Isis.MsState.Edu (Tim Tsai) writes:
>>>  In my case, I have my .plan set up as a named pipe and a daemon that
>>>searches the process table for the finger process when awaken.  This
>>>will only catch fingerers from the local host, which was fine, but if a
>>>NFS-mounted station tries to read my .plan, it blocks, and causes
>>>erratic behavior with the daemon until .plan is read from the original
>>>host.
>>I see.  This is a difficult problem to solve, unless you can arrange to run
>>your daemon on every system that mounts your home directory.

This won't work.  If you start up 5 named pipe daemons on 5 machines all waiting
on the same nfs mounted physical file the last one works and the first 4 hang.
This is on SunOS.  I can't speak for other implementations.

Worse, the finger hangs if the query is remote.  When the remote fingerer
kills his/her finger the finger and fingerd processes on our end have
know way of knowing that and just continue to wait.  I guess you've 
passed your finger program around to a few people because I regularly
have to kill off a handful of these semi-zombie processes.

>  We have at least 7 machines mounting the users' file systems, which
>makes that VERY impractical.  Not to mention that my account will
>probably be yanked if I decide to do something like that.. :-)

There are 18.  You'd probably have most bets covered though if you got it
going on the 2 central servers.  In that case I'd rather have you get it
working right so I can stop having to look for zombie-like finger processes
to kill.

>>Even if named pipes worked across NFS, what would you expect the result of
>>this to be?  How would you find the fingerer in the process table when the
>>fingerer is on a different system?

The finger server I wrote (on a whim the last time the subject came up)
would run any random program the user specified.  I ran it with the
fortune program so that each finger would get a different fortune in
the .plan file.  I also kept a count of fingerers in the .project file.

Not any more useful but it does point out that this technique can be used
for more than just capturing lists of fingerers.

>  Normally I just put "can't locate the fingerer" on the log file, but I
>thought about parsing netstat, and then start a remote shell on the
>machines that I do have access to..  It was just an interesting project
>to play with, not to get any work done or anything..  The best solution
>would be to modify fingerd, but that's impossible without root access.

I've considered modifying finger so that it ignores non-text .plan and
.project files (many systems come with finger so modified).  That would
solve my problem nicely.  Wouldn't help you much though (unless you consider
making the question moot to be a help).
--
Frank Peters   Internet:  fwp1 at CC.MsState.Edu         Bitnet:  FWP1 at MsState
               Phone:     (601)325-2942               FAX:     (601)325-8921



More information about the Comp.unix.questions mailing list