Come seguito di questa domanda , vorrei sapere dove disown -h
vengono reindirizzati lo STDOUT e lo STDERR di un programma su cui ho eseguito .
Come seguito di questa domanda , vorrei sapere dove disown -h
vengono reindirizzati lo STDOUT e lo STDERR di un programma su cui ho eseguito .
Risposte:
disown
non modifica i programmi STDOUT / ERR. Andranno comunque ovunque tu li abbia reindirizzati (usando >
ecc.). Se non li hai reindirizzati, continueranno ad entrare nel terminale da cui hai avviato il programma (fino a quando non chiudi quel terminale, nel qual caso verranno scartati).
Per illustrare, eseguilo in un terminale:
bash -c 'while true; do sleep 1; echo hi; done' &
Questo stampa "ciao" ogni secondo (e ti infastidisce terribilmente ;-)). Se disown
il programma dopo l'avvio, i "ciao" continueranno. Devi trovare il PID della shell (usando ad esempio ps) e ucciderlo per fermarlo.
Modificare:
Sulla base dei commenti, forse quello che vuoi veramente fare è recuperare l'output del programma dopo averlo disown
editato e chiuso il terminale in cui era in esecuzione. Questo è spiegato in questa domanda: Nohup remoto dopotutto con tcsh ( grazie a Quack Quixote).