User Tools

Site Tools


fore_background_desvincular_procesos_de_la_shell

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Last revisionBoth sides next revision
fore_background_desvincular_procesos_de_la_shell [2023/10/29 18:44] busindrefore_background_desvincular_procesos_de_la_shell [2023/10/29 18:50] – [Recuperar la salida de un comando que se ejecuta en segundo plano] busindre
Line 246: Line 246:
 NOTA: No todos los procesos sobreviven al cerrar la terminal, pese a que se haya desvinculado, un ejemplo puede ser tcpdump cuando no se redirige a un fichero la salida. NOTA: No todos los procesos sobreviven al cerrar la terminal, pese a que se haya desvinculado, un ejemplo puede ser tcpdump cuando no se redirige a un fichero la salida.
  
-==== Recuperar la salida de un comando que se ejecuta en segundo plano ====+==== Recuperar la salida (stdout / stderr) de un comando que se ejecuta en segundo plano ====
  
-Si se cerro la terminal donde se puso un programa en segundo plano y además se desvinculó previamente, este quedará en segundo plano funcionando. Reptyr no no sirve aquí ya que se cerró la terminal, pero con un depurador se puede obtener la salida del comando que está en segundo plano (XXX es el PID).+Si se cerro la terminal donde se puso un programa en segundo plano y además se desvinculó previamente, este quedará en segundo plano funcionando. Reptyr no sirve aquí ya que se cerró la terminal, pero con un depurador se puede obtener la salida del comando que está en segundo plano (XXX es el PID).
 <code bash>strace -pXXX -s9999 -e write</code> <code bash>strace -pXXX -s9999 -e write</code>
  
 +
 +Usando Ggb también puede cambiarse el stdout (1) y stderr (2) de un proceso en ejecución.
 +<code bash>
 +# PID: XXXX
 +gdb -p XXXX
 +
 +# Cambiar la salida estándar al fichero /tmp/stdout.
 +p (int)dup2((int)open("/tmp/stdout", 1089, 0777), 1)
 +# Redirige la salida de error a /dev/null.
 +p (int)dup2((int)open("/dev/null", 1089, 0777), 2)
 +# Redireccionando con gdb la salida de error a la terminal virtual /dev/pts/3.
 +p (int)dup2((int)open("/dev/pts/3", 1089, 0777), 2)</code>
 ==== Conceptos básicos sobre entrada / salida estándar y redirecciones ==== ==== Conceptos básicos sobre entrada / salida estándar y redirecciones ====
  
fore_background_desvincular_procesos_de_la_shell.txt · Last modified: 2024/02/13 17:16 by busindre