¿Es posible conectar un terminal a un proceso que ya se está ejecutando usando su PID de manera similar a usar el fg
comando 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
tail
para 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
sudo
Debe usar strace para adjuntar a un proceso, y usar-o ~/output.txt
para 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 )reptyr
screen
Ejemplo:
fuente
sudo apt-get install retty
pero existen pocas limitaciones con retty. Consulte la página de manual mencionada en la respuesta.