disown

linux-tux-large

Normalmente cuando tienes que correr alguna tarea, en sistemas Linux, que lleve tiempo en ejecutarse, backups, mover ficheros de un lado hacia otro, etc. Es una muy buena idea hacer uso de screen. Esta simple, pero potente aplicación permite que nos conectemos a sistema Linux, ejecutemos lo que sea, nos desconectemos, nos volvamos a conectar más tarde desde cualquier otra parte y recuperar la sesión que habíamos dejado, pero ¿Qué pasa cuando se nos ha olvidado ejecutar screen antes de hacer esa tarea pesada que tenemos que correr? Pues no pasa nada, para eso está disown. Esta pequeña utilidad que lo que hace es que algún proceso que ya tengamos corriendo desde nuestra sesión, lo separe de la misma. De forma que cuando cerremos la sesión, dicho proceso se siga ejecutando. A diferencia de screen, no podremos recuperar la sesión en la que estábamos, pero por lo menos no tendremos que matar ese proceso que llevaba 1 hora corriendo y empezarlo de nuevo más tarde. La forma de uso es muy sencilla. Lo primero que hay que hacer es suspender el proceso que queramos separar de nuestra sesión, luego lo ponemos a correr en segundo plano finalmente ejecutamos disown.

Veamos un ejemplo:

laptop:~$ sleep 120 ^Z [1]+  Stopped                 sleep 120 laptop:~$ bg [1]+ sleep 120 & laptop:~$ disown %1 laptop:~$ ps -ef | grep sleep tuxotron    12614 12547  0 23:15 pts/1    00:00:00 sleep 120 tuxotron    12844 12547  0 23:16 pts/1    00:00:00 grep sleep laptop:~$

Visto aquí.