Desligar un proceso de una terminal

Cuando creamos un proceso en una terminal, éste queda ligado a la terminal como “hijo”. Si la terminal muere, también lo hace el proceso. Para evitar ésto, si estamos en una terminal de escritorio (que es donde más se utiliza) podemos cerrar la terminal con el comando:

exit

y no cerrando la ventana. Ésta es una de las formas que conozco, no sé si pasa lo mismo en las otras terminales que no sean gnome-terminal.

La otra forma, que es la “forma Unix” es con el comando:

disown

Si no le pasamos parámetros, cogerá el último proceso creado. También podemos pasarle como parámetro el PID del proceso si tenemos muchos. O pasarle estas opciones:

Desliga a todos los procesos ejecutados desde la terminal

disown -a

Desliga a todos los procesos ejecutados desde la terminal que esten en marcha (Running).

disown -r

Si os fijais, ejecutando el comando “jobs” vereis en todo momento los procesos que han sido ejecutados en la terminal. Si desligais un proceso desaparece del listado de “jobs”. Para que el proceso se desligue de la terminal pero no se elimine de la lista de jobs podemos pasarle el parámetro -h al disown:

disown -h

Es un comando muy poco conocido y bastante útil. La entrada original de este artículo la puse en mi blog, pero creo que llegará a más gente desde aquí 🙂
Autor: jBilbo

This entry was posted in Linux. Bookmark the permalink.

Leave a Reply