Skip to main content

Reptyr es una utilidad para tomar un programa en background y “attacharlo” a una nueva terminal.

¿Como funciona?

Se adjunta al proceso de destino mediante la API de ptrace, abre el nuevo terminal y lo duplica sobre los descriptores de archivos antiguos. Paso siguiente, copia la configuración de termios del antiguo terminal al nuevo terminal.

En realidad, cambia el terminal de control del proceso que está adjuntando. Este es el detalle que hace que muchas cosas simplemente funcionen, incluidos ^C y ^Z y el cambio de tamaño de la ventana.

Instalación

Para este documento, se va a utilizar Debian 11 como sistema operativo base. Como primer paso, se instala la utilidad desde los repositorios.

root@randy:/# apt install reptyr
Reading package lists… Done
Building dependency tree… Done
Reading state information… Done
The following NEW packages will be installed:
reptyr
0 upgraded, 1 newly installed, 0 to remove and 139 not upgraded.
Need to get 22.8 kB of archives.
After this operation, 64.5 kB of additional disk space will be used.
Get:1 https://mirror.abc.dew.com/debian bullseye/main amd64 reptyr amd64 0.6.2-1.3 [22.8 kB]
Fetched 22.8 kB in 0s (712 kB/s)
Selecting previously unselected package reptyr.
(Reading database … 196434 files and directories currently installed.)
Preparing to unpack …/reptyr_0.6.2-1.3_amd64.deb …
Unpacking reptyr (0.6.2-1.3) …
Setting up reptyr (0.6.2-1.3) …
Processing triggers for man-db (2.9.4-2) …

Caso de uso

Al ejecutar en una terminar un comando que se va refrescando por segundo (como puede ser top), al mismo lo podemos parar con la letra “q” o enviandoló a background con “Ctrl + Z”.

Para poder listar los trabajos en background, podemos recurrir al comando “bg” o “jobs”.

Como paso final, solamente ejecutando “reptyr <PID>” recuperamos el trabajo enviado a background para poder seguir operando.

El contenido de este artículo esta bajo licencia Creative Commons.