Ir al contenido principal

Cómo usar el comando ps para monitorear procesos de Linux

Obtenga una instantánea de los procesos que se ejecutan en su computadora Linux con el comando pscommand. Localice los procesos por nombre, usuario o incluso terminal con la cantidad de detalles que necesite. Le mostramos cómo.

Gestión de procesos en Linux

El corazón que latede todos los sistemas operativos similares a Linux y Unix es el kernel. Entre sus muchas responsabilidades está la asignación de recursos del sistema, como la RAM y el tiempo de CPU. Estos deben ser malabarizados en tiempo real para que todos los procesos en ejecución obtengan su parte justa, de acuerdo con la prioridad de cada tarea.

A veces las tareas pueden bloquearse, entrar en un ciclo cerrado o dejar de responder. por otras razonesO pueden continuar ejecutándose, pero engullir demasiado tiempo de CPU o RAM, o comportarse de una manera igualmente antisocial.A veces, las tareas deben ser eliminadas como una misericordia para todos los involucrados. El primer paso. Por supuesto, es identificar el proceso en cuestión.

Pero tal vez no tenga ninguna tarea o problemas de rendimiento. Quizás tenga curiosidad por saber qué procesos se ejecutan dentro de su computadora, y le gustaría echar un vistazo debajo del capó. El comando ps satisface ambas necesidades. Le ofrece una instantánea de lo que está sucediendo dentro de su computadora “ en este momento. ”

ps es lo suficientemente flexible como para brindarle exactamente la información que necesita exactamente en el formato que &’me gustaDe hecho, ps tiene muchas opciones. Las opciones descritas aquí satisfarán las necesidades más comunes. Si necesita profundizar en ps más de lo que hemos visto en este artículo, encontrará que nuestra introducción hace que la página de manual sea más fácil de digerir.

Procesos de listado

La forma más fácil de usar ps es activarlo sin parámetros:

 ps 

ps muestra una lista deprocesos iniciados por el usuario que ejecutó el comando.

Las cuatro columnas son:

  • PID: el número de identificación del proceso.
  • TTY: el nombre de la consola en la que el usuario ha iniciado sesión.
  • TIEMPO: la cantidad de tiempo de procesamiento de la CPU que el proceso ha utilizado.
  • CMD: El nombre del comando que inició el proceso

Proceso de listado para todos los usuarios

agregando -e (seleccione todos los procesos) podemos hacer que ps enumereprocesos que han sido iniciados por todos los usuarios, no solo el usuario que ejecuta el comando ps. Debido a que esta será una lista larga, la vamos a poner en menos.

 ps -e |menos 

La lista de procesos se canaliza a less.

Tenemos &’ tenemos muchas más entradas en ellista, pero vemos las mismas cuatro columnas que antes. Las entradas con un signo de interrogación?en la columna TTY no se iniciaron desde una ventana de terminal.

Mostrando la jerarquía de procesos

A veces puede ayudar resolver un problema o identificar un proceso en particular si puede ver qué procesos se iniciaronotros procesosUtilizamos la opción -H (jerarquía) para hacerlo.

 ps -eH |menos 

La sangría indica qué procesos son padres de qué otros procesos.

Para agregar un poco más de claridad,podemos pedirle a ps que agregue algunas líneas ASCII y que dibuje la jerarquía como un árbol. La opción para hacer esto es la opción --forest.

 ps -eH --forest |menos 

Esto facilita el seguimiento de qué procesos son los padres de otros procesos.

Listado de procesos por nombre

Puede canalizar la salida de ps a través de grep para enumerar las entradas que tienen nombres que coinciden con el término de búsqueda. Aquí &’ estamos buscando entradas que coincidan con el “ firefox ”término de búsqueda:

 ps -e |grep firefox 

En este caso, la salida es una sola entrada para el proceso que nos interesa. Por supuesto, si lanzamos varias instancias de Firefox,&’ habría más de un elemento devuelto en la lista.

Mostrando más columnas en la salida

Para agregar más columnas a la salida, use la opción -f (formato completo).

 ps -ef |menos 

Se incluye un conjunto adicional de columnas en la salida de ps.

Las columnas son:

  • UID: el ID de usuario del propietario de este proceso.
  • PID: el ID de proceso del proceso.
  • PPID: ID de proceso padre delproceso.
  • C: El número de hijos que tiene el proceso.
  • TIEMPO: Hora de inicio. La hora en que comenzó el proceso.
  • TTY: El nombre de la consola en la que el usuario inició sesión.
  • HORA: La cantidad de tiempo de procesamiento de la CPU que el proceso ha utilizado.
  • CMD: el nombre del comando que inició el proceso.

Al usar la opción -F (formato completo adicional) podemos obtener aún más columnas:

 ps -eF |menos 

Las columnas que obtenemos esta vez requieren que la pantalla se desplace lateralmente para revelarlas todas.

Al presionarla “ Flecha derecha ”la tecla desplaza la pantalla a la izquierda.

Las columnas que ahora obtenemos son:

  • UID: la ID de usuario del propietario de esteproceso.
  • PID: el ID del proceso del proceso.
  • PPID: ID del proceso padre del proceso.
  • C: El número de hijos que tiene el proceso.
  • SZ: Tamaño en páginas RAM de la imagen de proceso.
  • RSS: Tamaño de conjunto residente. Esta es la memoria física no intercambiada utilizada por el proceso.
  • PSR: El procesador al que está asignado el proceso.
  • TIEMPO: Hora de inicio. La hora en que comenzó el proceso.
  • TTY: El nombre de la consola en la que el usuario inició sesión.
  • HORA: La cantidad de tiempo de procesamiento de la CPU que el proceso ha utilizado.
  • CMD: el nombre del comando que inició el proceso.

Listado de procesos por ID de proceso

Una vez que haya encontrado la ID de proceso parael proceso en el que está interesado, puede usarlo con el comando ps para enumerar los detalles de ese proceso. Use la opción -p (seleccionar por ID de proceso) para lograr esto:

 ps -p 3403 

Los detalles para este proceso sonenumerado:

No está restringido a una ID de proceso. Puede proporcionar una lista de ID de procesos, separados por espacios.

Listado de procesos por comando

La opción -C (comando) le permite buscar un proceso usando el nombre del comando. Es decir, el nombre del comando que inició el proceso. Esto es sutilmente diferente de la línea de comando, que puede incluir nombres de ruta y parámetros u opciones.

 ps -C obturador 

Los detallespara el proceso de obturación se enumeran.

Listado de procesos propiedad de un usuario

Para ver los procesos que son propiedad de un usuario en particular, use la opción -u (lista de usuarios):

 ps -u mary 

Se muestran los procesos que posee la cuenta de usuario mary.

Listado de procesos por terminal

Para ver los procesos asociados con un TTY, use la opción -t (seleccionar por TTY). Utilizada sin un número TTY, la opción -t informa sobre los procesos asociados con la ventana de terminal actual.

 tty 

 ps -t 

El comando tty informa que este es un pseudo teletipo 0. Los procesos enumerados por ps -t están todos asociados con TTY pts / 0.

Si pasamos un número TTYen la línea de comando, deberíamos obtener un informe de los procesos asociados con ese TTY.

 ps -t 1 

Esta vez eltodos los procesos están asociados con TTY pts / 1.

RELACIONADO: ¿Qué es un TTY en Linux?(y cómo usar el comando tty)

Selección de columnas para mostrar

Con la opción -o (formato) puede seleccionar qué columnas desea incluir en la salida de ps. Usted especifica las columnas por nombre. La lista (larga) de nombres de columna se puede ver en la página de manual en la sección titulada “ Especificadores de formato estándar. ”En este ejemplo, estamos eligiendo tener el tiempo de CPU (pcpu) y la línea de comando con argumentos (args) incluidos en la salida.

 ps -e -o pcpu, argsEl |menos 

El resultado solo incluye nuestras dos columnas solicitadas.

Ordenar el resultado por columnas

Puede ordenar la salida utilizando la opción --sort. Ordenemos la salida por la columna de la CPU:

 ps -e -o pcpu, args --sort -pcpu |menos 

El guión “ - ”en el parámetro de ordenación de la pcpu se obtiene un orden de clasificación descendente.

Para ver los diez procesos más intensivos de CPU, canalice la salida a través del comando principal:

 ps -e -o pcpu, args --sort -pcpu |head -10 

Obtenemos una lista ordenada y truncada.

Si agregamos más columnas a nuestra pantalla,Podemos ordenar por más columnas. Agreguemos la columna pmem. Este es el porcentaje de la memoria de la computadora que está siendo utilizada por el proceso. Sin un guión, o con un plus ”+ “, el orden de clasificación es ascendente.

 ps -e -o pcpu, pmem, args --sort -pcpu, pmem |cabeza -10 

Obtenemos nuestra columna adicional, y la nueva columna se incluye en la clasificación. La primera columna se ordena antes de la segunda columna, y la segunda columna se ordena en orden ascendente porque no pusimos un guión en pmem.

Deje &’ s lo hace un poco más útil y agrega en la columna de ID de proceso (pid) para que podamos ver el número de proceso de cada proceso en nuestro listado.

 ps -e -o pid, pcpu, pmem, args --sort -pcpu, pmem |head -10 

Ahora podemos identificar los procesos.

Procesos de eliminación por ID de proceso

Hemos cubierto una variedad de formas de identificar procesos, incluyendo nombre, comando, usuario y terminal. También hemos cubierto formas de identificar procesos por sus atributos dinámicos, como el uso de CPU y la memoria.

Entonces, de una forma u otra, podemos identificar los procesos que se están ejecutando. Al conocer su ID de proceso, podemos (si es necesario) matar cualquiera de esos procesos utilizando el comando kill. Si quisiéramos eliminar el proceso 898, usaríamos este formato:

 sudo kill 898 

Si todo va bien,el proceso finaliza en silencio.

RELACIONADO: Cómo matar procesos desde el terminal Linux

Procesos de matanza por nombre

ElEl comando pkill le permite eliminar procesos por nombre.¡Asegúrese de haber identificado el proceso correcto!Este comando finalizará el proceso superior.

 sudo pkill top 

Nuevamente, ninguna noticia es una buena noticia. El proceso finaliza silenciosamente.

Eliminación de múltiples procesos por nombre

Si tiene varias copias de un proceso en ejecución, o si un proceso ha generado un númerode procesos secundarios (como puede hacer Google Chrome), ¿cómo puedes eliminarlos?Eso es igual de fácil. Usamos el comando killall.

Tenemos &’ tenemos dos copias de ejecución superior:

 ps -e |grep top 

Podemos terminar ambos con este comando:

 sudo killall top 

Sin respuesta significa que no hay problemas, por lo que ambos procesos han finalizado.

Obtenga una vista dinámica con la parte superior

La salidadesde ps es una vista instantánea. No se actualiza. Para obtener una vista de actualización de los procesos, use el comando superior. Proporciona una vista dinámica de los procesos que se ejecutan en su computadora. La pantalla está en dos partes. Hay un área de tablero en la parte superior de la pantalla compuesta por líneas de texto, y una tabla en la parte inferior de la pantalla compuesta por columnas.

Comience arriba con este comando:

 top 

Las columnas contienen información sobre los procesos:

  • PID: ID del proceso
  • USUARIO: Nombre del propietario del proceso
  • PR: Prioridad del proceso
  • NI: El buen valor del proceso
  • VIRT: Memoria virtual utilizada por elproceso
  • RES: memoria residente utilizada por el proceso
  • SHR: memoria compartida utilizada por el proceso
  • S: estado del proceso. Consulte la lista a continuación de los valores que este campo puede tomar
  • % CPU: la parte del tiempo de CPU utilizada por el proceso desde la última actualización
  • % MEM: parte de la memoria física utilizada
  • TIME +: tiempo total de CPU utilizado por la tarea en centésimas de segundo
  • COMANDO: nombre del comando o línea de comando (parámetros de nombre y línea de comando) Si no se puede ver la columna de comando, presionela “ Flecha derecha ”clave.

El estado del proceso puede ser uno de los siguientes:

  • D: suspensión ininterrumpida
  • R: ejecución
  • S: Dormir
  • T: Rastreado (detenido)
  • Z: Zombi

Presione la tecla “ Q ”clave para salir de la parte superior.

RELACIONADO: 37 comandos importantes de Linux que debe conocer

Antes de matar un proceso

Asegúrese de que sea el que usted &’ después, y compruebe que no le causará ningún problema. En particular, vale la pena consultar con las opciones -H (jerarquía) y --forest para asegurarse de que no tenga procesos secundarios importantes que usted haya olvidado.

Fuente: How to Geek

Vea También:

Comentarios

Entradas populares de este blog

Cómo conservar tu calabaza tallada para Halloween

Si toma en serio su tallado de calabaza, hay una buena posibilidad de que desee asegurarse de que su obra maestra en calabaza dure el mayor tiempo posible. Aquí le mostramos cómo hacerlo. Cuando trabaja con una calabaza como lienzo, no tiene el beneficio de material inerte otiempo de tu lado. Desde el momento en que arrancas la vieja calabaza de la parra en el huerto de calabazas, tu amigo naranja se dirige a la gran pila de compost. Pero con un poco de creatividad (y sobre todo trabajo extra) puede hacer que su obra maestra de Halloween dure el mayor tiempo posible. Echemos un vistazo a todas las formas en que puede extender su jack-o & #8217; -linterna sonrisa. Tallar cerca de Halloween Oye, lo tenemos — estás muy entusiasmado con Halloween y no puedes esperar para obtenertallado. Pero cuantos menos días su calabaza esté tallada y expuesta a los elementos, más fresca se verá en Halloween. Si desea omitir todos los demás pasos, espere para

¿Qué son stdin, stdout y stderr en Linux?

stdin, stdout y stderr son tres flujos de datos creados al iniciar un comando de Linux. Puede usarlos para saber si sus scripts se están canalizando o redirigiendo. Le mostramos cómo. Streams Unir dos puntos Tan pronto como Cuando comienzas a aprender sobre Linux y sistemas operativos tipo Unix, te encontrarás con los términos stdin, stdout y stederr. Estas son tres secuencias estándar que se establecen cuando se ejecuta un comando de Linux. En informática, un flujo es algo que puede transferir datos. En el caso de estas corrientes, esos datos son texto. Las corrientes de datos, como las corrientes de agua, tienen dos extremos. Tienen una fuente y un flujo de salida. Cualquiera que sea el comando de Linux que esté utilizando, proporciona un extremo de cada transmisión. El otro extremo está determinado por el shell que lanzó el comando. Ese extremo estará conectado a la ventana del terminal, conectado a una tubería o redirigido a un archivo u otro

Cómo usar el comando Echo en Linux

El comando echo es perfecto para escribir texto formateado en la ventana del terminal.Y no tiene que ser texto estático. Puede incluir variables de shell, nombres de archivo y directorios. También puede redirigir echo para crear archivos de texto y archivos de registro. Siga esta sencilla guía para descubrir cómo. Echo repite lo que le dice que repita A Zeus le gustaba abandonar el Olimpo para asociarse con hermosas ninfas. En un viaje, le dijo a una ninfa de la montaña llamada Echo que matara a su esposa, Hera, si ella lo seguía. Hera vino a buscar a Zeus, y Echo hizo todo lo que pudo para mantener a Hera en conversación. Finalmente, Hera perdió los estribos y maldijo al pobre Echo para que solo repitiera las últimas palabras que alguien más había dicho. Lo que Hera le hizo a Zeus cuando lo alcanzó es la suposición de nadie. Y eso, más o menos, es mucho eco en la vida. Repite lo que se le ha dicho que repita. Esa es una función simple, pero vit