Como seguimiento de esta pregunta , me gustaría saber a dónde se redirige el STDOUT y STDERR de un programa en el que he ejecutado disown -h
.
Como seguimiento de esta pregunta , me gustaría saber a dónde se redirige el STDOUT y STDERR de un programa en el que he ejecutado disown -h
.
Respuestas:
disown
no cambia los programas STDOUT / ERR. Todavía irán a donde sea que los haya redirigido (usando >
etc.). Si no los redirigió, continuarán yendo a la terminal desde la que inició el programa (hasta que cierre esa terminal, en cuyo caso se descartarán).
Para ilustrar, ejecute esto en una terminal:
bash -c 'while true; do sleep 1; echo hi; done' &
Esto imprimirá "hola" cada segundo (y te molestará terriblemente ;-)). Si disown
el programa después del inicio, los "hola" continuarán. Debe encontrar el PID del shell (usando, por ejemplo, ps) y matarlo para que se detenga.
Editar:
Según los comentarios, tal vez lo que realmente desea hacer es recuperar la salida del programa después de disown
editarlo y cerrar el terminal en el que se estaba ejecutando. Esto se explica en esta pregunta: Nohup remoto después del hecho con tcsh ( gracias al quijote quack).