Al kill -9 $PID &>/dev/nullfinalizar un proceso con un script, todavía se imprime un mensaje en el terminal después de que termina el siguiente comando. ¿Cómo se detiene este comportamiento?
Por ejemplo
while true; do
/usr/bin/dostuff -a -b -c
PID=$(pidof -o %PPID /usr/bin/dostuff)
sleep 1;
kill -KILL $PID &>/dev/null
echo "hello"
done
imprimirá algo como
hello
./my-cript.sh: line 12: 7134 Killed
/usr/bin/dostuff -a -b -c
Cuando solo quiero que imprima "hola"
EDITAR: La solución limpia es ejecutar el programa en una subshell o rechazarlo.
#SOLUTION
while true; do
/usr/bin/dostuff -a -b -c &
disown
PID=$!
sleep 1;
kill -KILL $PID &>/dev/null
echo "hello"
done
&>redirige stdin y stdout