Leyendo el resultado de cualquier proceso usando su pid

20

¿Es posible conectar un terminal a un proceso ya en ejecución utilizando su pid de manera similar a usar el comando fg para trabajos.

    
pregunta Tommy 25.09.2012 - 11:45

3 respuestas

31

Puede obtener los descriptores de archivos estándar de ese proceso, p. stdout :

tail -f /proc/<pid>/fd/1
    
respondido por el user23368 25.09.2012 - 15:52
7

Aquí hay algunas opciones. Una es redirigir la salida del comando a un archivo, y luego usar 'cola' para ver las nuevas líneas que se agregan a ese archivo en tiempo real.

Otra opción es ejecutar su programa dentro de la 'pantalla', que es una especie de aplicación de Terminal basada en texto. Las sesiones de pantalla se pueden adjuntar y separar, pero están destinadas nominalmente solo para ser utilizadas por el mismo usuario, por lo que si desea compartirlas entre usuarios

Si lo desea, puede rastrear el proceso y ver lo que está haciendo con strace

$ strace -e trace=open -p 22254 -s 80 -o output.txt

  

-p PID: Adjunte al proceso con el ID de proceso pid y comience a rastrear.

     

-s TAMAÑO: especifique el tamaño máximo de cadena para imprimir (el valor predeterminado es 32).

     

-o nombre de archivo: escriba el resultado del rastreo en el nombre del archivo en lugar de en la pantalla (stderr).

    
respondido por el user61928 25.09.2012 - 11:59
3

Puede usar los siguientes comandos para adjuntar un proceso en ejecución en otro terminal:

  • retty (página Man: retty )
  • reptyr
  • screen

Ejemplo:

screen -S PID
retty $(pgrep PID)
reptyr PID
    
respondido por el devav2 25.09.2012 - 12:19

Lea otras preguntas en las etiquetas