Sto cercando di implementare un semplice server di log in Bash. Dovrebbe prendere un file come parametro e servirlo su una porta con netcat.Come ottenere il PID di un processo che viene convogliato su un altro processo in Bash?
(tail -f $1 &) | nc -l -p 9977
Ma il problema è che quando il netcat termina, la coda viene lasciata indietro. (Chiarimento: se non eseguo il fork del processo di coda continuerà a funzionare per sempre anche il netcat termina.)
Se in qualche modo conosco il PID della coda, potrei successivamente ucciderlo.
Ovviamente, usando $! restituirà il PID di netcat.
Come posso ottenere il PID del processo di coda?
Cosa succede se non si usa '&'? 'tail -f' dovrebbe solo aspettare lì. Non capisco cosa sia il '&', anche se sembra che faccia parte di uno script più grande. Ad ogni modo, se uccidessi la pipa, penserei che la coda sarebbe poi morta (a patto che non lo sfondo). –
dalla mia comprensione delle shell, e in questo caso è usato con il significato di "start to background". Almeno, questo è il comportamento che sto vedendo proprio ora, cercando di applicare la soluzione al mio problema simile. – starturtle