I am trying to implement a simple log server in Bash. It should take a file as a parameter and serve it on a port with netcat.
( tail -f $1 & ) | nc -l -p 9977
But the problem is that when the netcat terminates, tail is left behind running. (Clarification: If I don't fork the tail process it will continue to run forever even the netcat terminates.)
If I somehow know the PID of the tail then I could kill it afterwards.
Obviously, using $! will return the PID of netcat.
How can I get the PID of the tail process?
&
?tail -f
is supposed to just wait there. I don't get what the&
is for, though it does look like this is part of a bigger script. Anyway, if you kill the pipe I would think that tail would then die (so long as you didn't background it). – Undershorts