miércoles, 23 de julio de 2014

Administrar procesos desde la consola de Windows

Hace unos días explicaba en una entrada el funcionamiento de algunos comandos que permitían administrar procesos desde la línea de comandos de Linux, hoy quiero compartir algunos comandos que nos permiten conocer que procesos se están ejecutando en un sistema Windows y algunas opciones aue nos permiten manipularlos.

Los comandos expuestos en esta entrada funcionan en Windows 7, Windows 8, Windows 2012 e incluso en el difunto Windows XP.

Conocer los procesos que se están ejecutando

Para saber que procesos se están ejecutando en el momento sólo basta con ejecutar el comando tasklist que al ejecutarlo sin ningún parámetro adicional nos arrojará una lista como esta:

Ejecutando tasklist en un entorno Windows
Ejecutando tasklist en un entorno Windows

Como se aprecia en la imagen tasklist nos muestra el nombre del proceso, su identificador (PID), información de la sesión y la memoria que está consumiendo. Si deseamos obtener información más detallada solo basta con ejecutar tasklist /v.

También es posible obtener información más especifica como por ejemplo que servicios del sistema están usando a cada proceso solo basta con ejecutar tasklist /svc:

Servicios que ejecutan procesos en Windows
Servicios que ejecutan procesos en Windows

También podemos saber que librerias está usando cada proceso ejecutando tasklist /m, la salida de este comando es extensa por lo cual podemos ejecutarlo combinado con more:


tasklist /m | more


O podemos guardar toda la información en un archivo para leer la información con más comodidad:


tasklist /m > C:\info_procesos.txt


El anterior comando guarda toda la información que generar el comando en el archivo C:\info_procesos.txt.

Para obtener más información de tasklist y de sus parámetros debe ejeuctarse tasklist /? para obtener la ayuda oficial del comando.

Terminar (matar) procesos

Para terminar un proceso solo basta con ejecutar el comando taskkillseguido del PID del proceso que queremos de la siguiente forma:

taskill /PID [PID del proceso]

Por ejemplo si quiero detener el proceso notepad.exe primero identifico su PID con tasklist:

Identificando procesos con tasklist
Identificando procesos con tasklist

Para este ejemplo el PID del proceso notepad.exe es 3044, ahora proceso a detenerlo con taskkill así:

Matando procesos con taskkill
Matando procesos con taskkill


Si por algún motivo no se puede detener el proceso podemos forzarlo agregando el parámetro /F que le indica al comando forzar la detención. De igual forma podemos detener a un proceso y a todos los procesos que este haya iniciado (hijos) con el parámetro /T.

Conclusiones

No hay duda en que el fuerte de Windows es su interfaz gráfica gracias a su usabilidad y fácil aprendizaje, lo cual ha significado un éxito del sistema operativo en el mercado durante años.

Si bien el administrador de tareas que incorpora el propio Windows permite de una manera muy gráfica e intuitiva conocer y detener los procesos que están ejecución, es posible que nos encontremos en entornos dónde la interfaz gráfica no está disponible (como en un servidor por ejemplo) o donde la línea de comandos es la mejor opción; es ahí donde es importante conocer los principales comandos para interactuar con el sistema y administrarlo.