Pregunta

Sé que lo más probable es extremadamente bajo, pero hay una manera para ver lo que es un proceso de nohup-ed ha sido recientemente emitiendo?

Todavía tiene este proceso abierto, pero me he encontrado con la reorientación de toda la salida a / dev / null.

Entonces, ¿hay una manera de recuperar tales vuelta al proceso de consola, o es inútil: (

Saludos

¿Fue útil?

Solución

Hay una manera, pero no es sencillo, el truco está en uso dup2 y depende del hecho de que su programa está enlazado con libc (que todos / c ++ c aplicaciones serían, pero una aplicación Java no lo haría ser, por ejemplo)

  1. adjuntar a su proceso utilizando gdb
  2. ejecute lo siguiente en el símbolo del BGF para redirigir la salida estándar a / tmp / nuevofichero

    $ impresión dup2 (abierta ( "/ tmp / nuevofichero", 0), 1)

  3. ejecute el siguiente para redirigir stderr a / tmp / nuevofichero

    $ impresión dup2 (abierta ( "/ tmp / nuevofichero", 0), 2)

  4. Separar GDB de su proceso y su hecho

dup2 hace es

  

duplicar un descriptor de archivo   Esto significa que tanto stdout / stderr (1 y 2) y el nuevo descriptor de archivo devuelto a partir abierta se pueden utilizar intercambiables que hará que toda la producción va a stdout y stderr para ir al archivo abierto.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top