GNU/Linux >> Tutoriales Linux >  >> Linux

Adjuntar a la salida de un proceso para ver

Creo que tengo una solución más simple aquí. Simplemente busque un directorio cuyo nombre corresponda al PID que está buscando, bajo el pseudo-sistema de archivos accesible bajo el /proc sendero. Entonces, si tiene un programa en ejecución, cuyo ID es 1199, cd en él:

$ cd /proc/1199

Luego busca el fd directorio debajo

$ cd fd

Este fd El directorio contiene los objetos de descriptores de archivo que usa su programa (0:stdin, 1:stdout, 2:stderr) y solo tail -f el que necesita, en este caso, stdout):

$ tail -f 1

Estaba buscando exactamente lo mismo y descubrí que puedes hacer:

strace -ewrite -p $PID

No es exactamente lo que necesitabas, pero está bastante cerca.

Probé la salida de redirección, pero no funcionó para mí. Tal vez porque el proceso estaba escribiendo en un socket, no lo sé.


Para mí, esto funcionó:

  1. Inicie sesión como propietario del proceso (incluso root se le niega el permiso)

    ~$ su - process_owner
    
  2. Siga el descriptor de archivo como se menciona en muchas otras respuestas.

    ~$ tail -f /proc/<process-id>/fd/1 # (0: stdin, 1: stdout, 2: stderr)
    

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

Otra opción es iniciar 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 desconectar, pero nominalmente solo deben ser utilizadas por el mismo usuario, por lo que si desea compartirlas entre usuarios, es un gran dolor de cabeza.


Linux
  1. No hay página man para el comando cd

  2. Color diferente para comando y salida

  3. ¿Cómo chown directorio para múltiples usuarios?

  4. ¿Qué genera pwd?

  5. 'tail -f' por una cantidad de tiempo específica

Crear directorio de inicio para usuarios existentes en Linux

Estructura de directorios de Linux explicada para principiantes

Comandos para la Gestión de Procesos en Linux

Colorear salida de cola

Alternativa para tail -f que sigue al nombre de archivo

ls se cuelga para un directorio determinado