¿Hay una manera de restaurar / recuperar nohup para ver la salida de la consola?
-
27-09-2019 - |
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
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)
- adjuntar a su proceso utilizando gdb
-
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)
-
ejecute el siguiente para redirigir stderr a / tmp / nuevofichero
$ impresión dup2 (abierta ( "/ tmp / nuevofichero", 0), 2)
- 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.