¿Es posible conectar un terminal a un proceso que ya se está ejecutando usando su PID de manera similar a usar el fgcomando para trabajos?
command-line
process
Tommy
fuente
fuente

Respuestas:
Puede obtener los descriptores de archivo estándar de ese proceso, por ejemplo
stdout:fuente
# ls -la /proc/24510/fd/1 lrwx------ 1 root root 64 Oct 31 08:34 /proc/24510/fd/1 -> socket:[444026]Hay algunas opciones aquí. Una es redirigir la salida del comando a un archivo, y luego usarla
tailpara ver nuevas líneas que se agregan a ese archivo en tiempo real.Otra opción es iniciar su programa dentro de
screen, que es una especie de aplicación de terminal basada en texto. Las sesiones de pantalla se pueden adjuntar y desconectar, pero están destinadas nominalmente a ser utilizadas únicamente por el mismo usuario, por lo tanto, si desea compartirlas entre usuarios.De lo contrario, si lo desea, puede rastrear el proceso y ver qué está haciendo con
strace:-p PID: Adjunte al proceso con el ID de proceso PID y comience el rastreo.-s SIZE: Especifique el tamaño máximo de cadena para imprimir (el valor predeterminado es 32).-o filename: Escriba la salida de rastreo en el nombre del archivo en lugar de en la pantalla (stderr)fuente
sudoDebe usar strace para adjuntar a un proceso, y usar-o ~/output.txtpara que el archivo quede en su carpeta de inicio.Puede usar los siguientes comandos para adjuntar un proceso en ejecución en otro terminal:
retty(Página del manual : retty )reptyrscreenEjemplo:
fuente
sudo apt-get install rettypero existen pocas limitaciones con retty. Consulte la página de manual mencionada en la respuesta.