Al kill -9 $PID &>/dev/null
finalizar 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