kill $foo_pid
wait $foo_pid 2>/dev/null
Übrigens, ich weiß nichts über Ihren extrem coolen Fortschrittsbalken, aber haben Sie Pipe Viewer (pv) gesehen? http://www.ivarch.com/programs/pv.shtml
Ich bin gerade selbst darauf gestoßen und habe festgestellt, dass "Verleugnung" das ist, wonach wir suchen.
foo &
foo_pid=$!
disown
boring_and_long_command
kill $foo_pid
sleep 10
Die Todesnachricht wird ausgegeben, weil der Prozess immer noch in der Shell-Liste der beobachteten "Jobs" steht. Der Disown-Befehl entfernt den zuletzt erzeugten Prozess aus dieser Liste, sodass keine Debug-Meldung generiert wird, wenn er beendet wird, selbst mit SIGKILL (-9).