title: How to get the PID of a process that is piped to another process in Bash?
body: <p>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.</p>
  
  <pre><code>( tail -f $1 &amp; ) | nc -l -p 9977
  </code></pre>
  
  <p>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.) </p>
  
  <p>If I somehow know the PID of the tail then I could kill it afterwards.<br>
  Obviously, using $! will return the PID of netcat.</p>
  
  <p>How can I get the PID of the tail process?</p>