In Bash, il disowncomando emesso da solo rimuoverà i processi in background (tramite bgo &) dalla tabella dei lavori attivi e li contrassegnerà per non ricevere un SIGHUP al logout.
Puoi anche passare uno o più lavori da respingere, come disown 1 3. Il disown -hflag è utile se si desidera mantenere i lavori nella tabella, ma non ancora SIGHUP al logout.
È possibile visualizzare la tabella dei lavori immettendo il jobscomando. Dopo uno sfondo di successo, mostrerà [1]+ command &. Dopo aver rinnegato un lavoro, non dovrebbe più essere visualizzato nella tabella dei lavori e non essere più eliminato al logout. È ancora possibile visualizzare il processo di via ps ux, tope altre utilità di processo-osservazione.
Dopo che un lavoro è stato rinnegato, è possibile attendere che termini in modo naturale o inviare un segnale killal PID per interromperlo.
Poiché Bash sta semplicemente rimuovendo il lavoro dall'elenco dei lavori in esecuzione da terminare e il file viene gestito dallo stdout del terminale e lo stderr è ancora aperto, continuerai a ricevere l'output dal lavoro fino alla chiusura del dispositivo terminale (quando esci) .
Esempi:
# we start a command in the background
$ cat /dev/urandom > test &
[1] 18533
# we see our command is still running
$ jobs
[1]+ Running cat /dev/urandom > test &
# we disown the backgrounded job
$ disown 1
# notice it is no longer in the job table
$ jobs
Io di solito uso solo disownse si esegue un comando potenzialmente di lunga durata come un rsynco cpe poi decidere ho bisogno di uscire senza terminare esso. Se sai che eseguirai un comando e ti disconnetterai, puoi catturare l'output teeeseguendo il piping o inserendolo in un file, eseguendolo nohupo eseguendolo screen(che ti consente di riprendere la proprietà del comando / terminare in seguito ).
Esempi:
# capture stdout and stderr to separate logs
cat /dev/urandom >stdout.log 2>stderr.log
# capture stdout and stderr to the same log, and display to stdout as well
cat /dev/urandom 2>&1 | tee output.log
# run a command under nohup (doesn't require a disown or job control support)
nohup cat /dev/urandom </dev/null