kill $foo_pid
wait $foo_pid 2>/dev/null
A proposito, non conosco la tua fantastica barra di avanzamento, ma hai visto Pipe Viewer (pv)? http://www.ivarch.com/programs/pv.shtml
Mi sono appena imbattuto in questo e ho capito che "rinnegare" è ciò che stiamo cercando.
foo &
foo_pid=$!
disown
boring_and_long_command
kill $foo_pid
sleep 10
Il messaggio di morte viene stampato perché il processo è ancora nell'elenco delle shell dei "lavori" osservati. Il comando disown rimuoverà il processo generato più di recente da questo elenco in modo che non venga generato alcun messaggio di debug quando viene ucciso, anche con SIGKILL (-9).