Questo può essere fatto utilizzando 'aspettare' + reindirizzamento di attesa a/dev/null:
sleep 2 &
PID=$!
kill -9 $PID
wait $PID 2>/dev/null
sleep 2
sleep 2
sleep 2
Questo script non dare il messaggio "ucciso":
-bash-4.1$ ./test
-bash-4.1$
Mentre, se si tenta di usare qualcosa come:
sleep 2 &
PID=$!
kill -9 $PID 2>/dev/null
sleep 2
sleep 2
sleep 2
Esso emette il messaggio:
-bash-4.1$ ./test
./test: line 4: 5520 Killed sleep 2
-bash-4.1$
Mi piace questa soluzione molto più rispetto all'utilizzo di 'rinnegare' che possono avere altre implicazioni.
fonte Idea: https://stackoverflow.com/a/5722850/1208218
grande, questo è quello che voglio, grazie un uomo molto .. – chemila
disown ha implicazione di shell non inviare 'SIGHUP' al bambino quando termina, vedi [questa domanda] (http://unix.stackexchange.com/domande/3886/differenza-tra-nohup-disconoscere-e). Ecco la [risposta] (http://stackoverflow.com/a/5722850/52499). –