Pausar procesos (aplicaciones)
Enviado por miguelcarmona :: 22 de junio de 2012

A veces, por algún motivo específico, necesitamos pausar alguna aplicación pero no cerrarla. Puede ser un caso el que hagamos una pausa en nuestra programación con nuestro flamante comedor de recursos como es eclipse o aptana y queramos ver un vídeo flash (otro glotón de recursos) con fluidez. Sería incómodo cerrar todo el IDE para luego volver a abrirlo. Pero el kernel Linux pensó en esos pequeños detalles y nos brinda ciertas posibilidades entre las que se encuentra detener, pausar o matar un proceso (o aplicación para los menos curtidos).
El caso es que podemos mandar la señal detener ( -19 ) a un determinado proceso para posteriormente poder iniciarlo de nuevo ( -18 ). Esta señal se puede mandar con el comando kill y el id de proceso o con el comando killall y el nombre de proceso. Como no me gusta dar tantas vueltas, me centraré en killall:
- Pausar proceso: killall -19 <nombre-proceso>
- Reanudar proceso pausado: killall -18 <nombre-proceso>
- Matar proceso: killall -9 <nombre-proceso>
De forma que si queremos pausar por ejemplo firefox, bastaría con un killall -19 firefox y un killall -18 firefox para reanudad este proceso. Hay que tener en cuenta que a partir de la versión 10 (creo recordar) de firefox los plugins (como flash) se ejecutan en un proceso diferente (plugin-container normalmente) de forma que aunque pausemos a firefox, no pausaremos el proceso flash lanzado por el mismo (tendríamos que lanzar killall -19 plugin-container).
Es muy curioso lo bien que trabaja este sistema con los navegadores al igual que con flash por ejemplo. Se me ha dado más de un caso donde encontraba información realmente buena en una página llena de molestos banners flash lo cual hacía que el hecho de bajar la página se convirtiese en un grandioso reto. Bastaba con pausar dicho proceso (plugin-container), revisar el texto y una vez cerramos la pestaña, reanudarlo de nuevo. De hecho funciona bastante bien con grooveshark o con youtube de forma que puedes pausar flash y al reanudarlo, reanuda perfectamente la reproducción por donde lo teníamos.
Ni que decir queda que para aquellos que no sepan el nombre de proceso, bastaría con el comando ps y grep de forma que para firefox bastaría con:
ps -A | grep fire
donde con ps -A decimos que muestre todos los procesos y con grep fire filtramos en la lista de todos los procesos aquellos que contengan fire.
Los usuarios de KDE tenemos nuestra aplicación de Actividad del sistema desde donde podemos mandar varios tipos de señales a un proceso. Para inicial la aplicación de Actividad del sistema bastaría con pulsar las teclas Crtl + esc
Como vemos en esta aplicación tenemos más que de sobra para manejar dichos procesos. En la parte superior tenemos un campo para filtrar procesos. En este caso filtro por fire (lo cual me saca todo lo coincidente al igual que grep). Vemos que hay 2 procesos, dicho firefox y el proceso para lanzar plugins del mismo.
Al pulsar con botón derecho vemos que podemos mandar entre otras señales:
- Suspender (STOP) => pausar el proceso como hacíamos con killall -19 <nombre-proceso>
- Continuar (CONT) => reanudad el proceso como hacíamos con killall -18 <nombre-proceso>
- Matar (KILL) => matar el proceso como hacíamos con killall -9 <nombre-proceso>
Esta entrada viene inspirada por esta otra http://fedoreando.com/2012/06/09/usando-linux-like-a-boss-pausar-aplicaciones en la cual se explica el mismo proceso pero con el comando kill en vez de con killall. Viendo dicha entrada me vino a la mente que aunque es algo que use habitualmente desde hace algún tiempo, es muy probable que no se conozca en la mayoría de los casos por lo que al ver que era un tanto compleja para el público mayor, decidí exponerla de forma más sencilla.