20 ejemplos de comandos ps para monitorear procesos de Linux

El monitoreo del sistema Linux es una de las tareas más importantes que cualquier usuario de Linux o un administrador de sistemas debe realizar las 24 horas del día para garantizar que el sistema funcione sin problemas y evitar cuellos de botella. Linux viene con algunas herramientas integradas que pueden ayudarlo a monitorear su sistema. Uno de estos es el ps (estado de los procesos) comando que monitorea específicamente los procesos en ejecución y entre otras métricas asociadas con los procesos, como el porcentaje UPC y memoria utilización. El comando ps lee el sistema de archivos /proc que está basado en RAM o es un sistema de archivos virtual.

En esta guía, nos sumergimos más profundamente y le permitimos 20 de los comandos ps más utilizados.

1) Proceso de listado en el Shell

La forma más simple del comando ps en Linux, enumera los procesos en ejecución en el shell actual. Esto se puede ilustrar a continuación.

[[email protected] ~]$ ps
 PID TTY          TIME CMD
 1437 pts/0    00:00:00 bash
 1465 pts/0    00:00:00 ps
[[email protected] ~]$

Definamos algunos términos:

  • PID: Este es el ID del proceso.
  • TTY: Esto se refiere a la terminal que inició y está controlando el proceso.
  • TIEMPO: Este es el tiempo / tiempo acumulado durante el que se ha ejecutado un proceso.
  • CMD: Nombre del comando que inició el proceso.

2) Listado de procesos asociados a una terminal

Esto es muy parecido a enumerar los procesos en el shell. Para enumerar los procesos asociados con el terminal que está ejecutando actualmente, ejecute el comando:

[[email protected] ~]$ ps -T
  PID  SPID TTY          TIME CMD
 1437  1437 pts/0    00:00:00 bash
13357 13357 pts/0    00:00:00 ps
[[email protected] ~]$

3) Mostrar todos los procesos en ejecución en su sistema

Para obtener una descripción general de todos los procesos en ejecución en su sistema Linux, use el -Una bandera como se muestra:

[[email protected] ~]$ ps -A

ps-command-display-all-running-process

Alternativamente, también puede usar el –mi bandera como se muestra. Seguirás obteniendo resultados similares.

[[email protected] ~]$ ps -e

4) Mostrar salida en formato BSD

Para listar los procesos en formato BSD, ejecute el comando

$ ps -aux

Desglosemos el comando:

El indicador -a indica a ps que muestre todos los procesos de todos los usuarios. Esto, sin embargo, excluye los procesos asociados a un terminal específico.

La bandera -u implica un formato orientado al usuario. Proporciona información más detallada asociada con los procesos en ejecución.

El indicador x enumera los procesos que generalmente se inician al iniciar el sistema, así como los procesos en segundo plano.

ps-comando-salida-bsd-formato

Donde:

  • USUARIO: especifica el usuario que ejecuta el proceso.
  • PID: este es el ID de proceso del proceso.
  • %CPU: este es el porcentaje de uso de CPU de cada proceso
  • %MEM: este es el % de la memoria física utilizada por el proceso
  • VSZ: este es el tamaño de la memoria virtual de cada proceso en kilobytes
  • RSS: este es el tamaño/cantidad de memoria física utilizada por un proceso
  • STAT: apunta al código de estado del proceso, por ejemplo, S (dormido), Z (zombie) y R (corriendo)
  • INICIO: este es el momento en que el proceso comenzó a ejecutarse

5) Mostrar salida en formato UNIX

Si desea mostrar la salida en formato UNIX, ejecute el comando ps con una combinación de -ef banderas

[[email protected] ~]$ ps -ef

El indicador -e le dice al comando ps que enumere todos los procesos

El indicador -f (formato completo) indica al comando ps que enumere información detallada sobre los procesos.

ps-comando-salida-unix-formato-linux

Definamos algunos términos nuevos de la captura de pantalla:

  • PPID: Esto se refiere a la identificación del proceso principal
  • C: Esto se refiere al %CPU o porcentaje de la utilización de CPU de un proceso.
  • STIME: Indica la hora en que se inició el comando. Igual que INICIO

6) Mostrar la salida en un formato definido por el usuario

En una salida de formato definido por el usuario, tiene el poder de decidir qué columnas se mostrarán. El -o bandera determina qué columnas se mostrarán al ejecutar el comando ps. En el siguiente ejemplo, sólo el PID y COMIENZO se muestran las columnas. Asegúrese de tener en cuenta que las opciones de las columnas se pasan en minúsculas en el comando ps.

[[email protected] ~]$ ps -efo pid,start
  PID  STARTED
 1437 21:55:28
13632 01:41:16
[[email protected] ~]$

7) Mostrar los procesos en ejecución actuales de un usuario

A veces, es posible que desee averiguar los procesos que están asociados con un determinado usuario, por lo que para lograrlo, utilice el -u bandera como se muestra»

$ ps -u usuario

O

$ pd -u uid

Por ejemplo, para ver los procesos asociados con el usuario ‘Linuxtechi’, ejecute el comando:

$ ps -u linuxtechi

User-Specific-Process-ps-command-Linux

Alternativamente, puede usar el uid del usuario (ID de usuario). Puede obtener la identificación del usuario ejecutando el comando:

$ id de usuario

[[email protected] ~]$ id linuxtechi
uid=1000(linuxtechi) gid=1000(linuxtechi) groups=1000(linuxtechi),10(wheel)
[[email protected] ~]$

Del resultado anterior, podemos ver claramente que el uid para el usuario ‘linuxtechi’ es 1000. Luego puede usar el comando ps y el uid para encontrar los procesos asociados con el usuario.

$ ps -u 1000

id-based-process-ps-command-linux

Para el usuario root, ejecute el comando

$ ps -u root

root-propiedad-proceso-linux

De manera similar, puede verificar usando el uid del usuario raíz cuyo valor es 0

$ ps -u 0

8) Visualización de procesos de grupo

La lista de procesos de grupo es similar a la lista de procesos de usuario. Puede listar un proceso de grupo usando el comando ps pasando el nombre del grupo especificando la ID del grupo.

Por ejemplo, para mostrar los procesos asociados con el grupo ‘apache’ ejecute el comando:

$ ps -fG

$ ps -fG apache

grupo-basado-proceso-linux-ps-comando

Alternativamente, puede pasar la ID del grupo (gid) en lugar del nombre del grupo. puede obtener los GID del archivo /etc/group.

Por ejemplo, en este caso, el ID de grupo para Apache es 48. Entonces, en lugar de especificar el nombre del grupo ‘apache‘ simplemente especifique el GID no. 48.

$ ps -fG 48

grupo-id-basado-proceso-linux-ps-comando

9) Visualización de procesos usando PID y PPID

Los procesos de Linux también se pueden mostrar usando el PID (Identificacion de proceso) y el PPID (ID del proceso principal). El PPID se refiere al PID del padre de un proceso.

Para listar procesos por PID, ejecute

$ ps -fp PID

Por ejemplo, para enumerar los procesos asociados con el PID 1286, ejecute el comando:

[[email protected] ~]$ ps -fp 1286
UID        PID  PPID  C STIME TTY          TIME CMD
postfix   1286  1285  0 03:49 ?        00:00:00 pickup -l -t unix -u
[[email protected] ~]$

Para enumerar los procesos por PPID, ejecute

$ ps -f –ppid

Por ejemplo, para enumerar los procesos propiedad de PPID 31903, ejecute

$ ps -f --ppid 31903

proceso-basado-en-ppid-ps-comando

10) Búsqueda de un PID usando el nombre del proceso

La mayor parte del tiempo no conocemos el PID del nombre del proceso. Para hacerlo, utilice el -Bandera C como se muestra

$ ps -C

[[email protected] ~]$ ps -C firefox
  PID TTY          TIME CMD
 1446 tty2     00:00:04 firefox
[[email protected] ~]$

11) Visualización del proceso mediante TTY

Si desea filtrar procesos por el valor tty use el -t bandera. Por ejemplo, para mostrar los procesos adjuntos a tty1, ejecute el comando ps como se muestra:

$ ps -ft tty1

lista-tty-proceso-ps-comando-linux

12) Imprimiendo el Árbol de Procesos

Un árbol de procesos muestra cómo se vinculan los procesos en un sistema Linux. Procesos sin enlaces primarios al sistema a través de init o systemd. La impresión requiere que utilice el siguiente formato:

$ ps -e --forest

proceso-árbol-ps-comando-linux

13) Filtrar un proceso según el proceso del subproceso

Para filtrar un proceso utilizando el subproceso de proceso, utilice el -L bandera como se muestra,

$ ps -L 1446

proceso-hilo-ps-comando-linux

14) Monitoreo de procesos en tiempo real

Puede usar la utilidad watch para monitorear información estática sobre un proceso. La salida se reproduce cada segundo como se muestra a continuación

$ watch -n 1 'ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head'

reloj-comando-proceso-monitor-linux-ps

El comando imprime las columnas pid,ppid,cmd,%mem y %cpu y monitorea las estadísticas cada segundo mientras clasifica los % de utilización de la CPU en orden descendente.

15) Solucionar problemas de rendimiento de la máquina Linux

Cuando su sistema es lento o está sobrecargado, puede identificar el proceso de mayor ejecución por el mayor uso de CPU y memoria

Ejecute el siguiente comando ps para enumerar los principales procesos que consumen mucha memoria,

$ ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head

Ejecute el siguiente comando ps para enumerar los principales procesos que consumen mucha CPU,

$ ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head

La salida de muestra del comando ps anterior en mi sistema está a continuación,

superior-proceso-memoria-cpu-ps-command-linux

16) Matar procesos que no responden

El comando ps puede permitirle eliminar aplicaciones que no responden o cualquier proceso que esté acaparando la CPU y la RAM. Para hacer esto, necesita encontrar el PID de esa aplicación en particular usando el comando:

$ ps -A | grep -i stress

Una vez que haya encontrado el PID del proceso, puede terminarlo usando el comando matar, el ejemplo se muestra a continuación,

$ kill -9 2583 2584

17) Enumere todos los PID de todas las instancias de proceso

Puede enumerar todos los PID asociados con un proceso utilizando la sintaxis:

$ ps -C -o pid=

Por ejemplo, para averiguar los PID asociados con el servidor web httpd, ejecute:

$ ps -C httpd -o pid=

pids-process-linux-ps-comando

18) Mostrar la duración de los procesos que se han estado ejecutando

Para mostrar cuánto tiempo se han estado ejecutando los procesos, ejecute el comando:

$ ps -eo comm,etime,user

proceso-duración-linux-ps-comando

Use el siguiente comando ps para saber cuánto tiempo se ha estado ejecutando un proceso en particular,

$ ps -o etime -p

Supongamos que queremos saber sobre el proceso mysql

[[email protected] ~]$  ps -C mysqld -o pid=
 3807
[[email protected] ~]$
[[email protected] ~]$ ps -o etime -p 3807
    ELAPSED
   01:13:56
[[email protected] ~]$

19) Lista de procesos secundarios de un proceso

Para imprimir o enumerar los procesos secundarios de un proceso, utilice -Bandera C en la siguiente sintaxis:

$ ps -C

Por ejemplo, para enumerar los procesos secundarios asociados con el proceso httpd, ejecute

[[email protected] ~]$ ps -C httpd
  PID TTY          TIME CMD
31911 ?        00:00:00 httpd
31918 ?        00:00:00 httpd
31919 ?        00:00:00 httpd
31920 ?        00:00:01 httpd
31921 ?        00:00:01 httpd
31922 ?        00:00:01 httpd
[[email protected] ~]$

20) Filtrado de salida del comando ps usando grep

Para obtener resultados específicos en el comando ps, puede canalizar la salida a la herramienta de utilidad grep y proporcionar los criterios de búsqueda.

Por ejemplo, para buscar o restringir el proceso php, ejecute el comando:

$ ps -ef | grep php

grep-ps-comando-salida-linux

Hemos enumerado los 20 comandos ps principales que se usan comúnmente para enumerar y monitorear los procesos que se ejecutan en su sistema Linux. Estos comandos funcionarán en todas las distribuciones de Linux y sin duda le brindarán una descripción general de los procesos que se ejecutan en su sistema y lo ayudarán a determinar cuáles están sobrecargando sus recursos de CPU y RAM. ¿Encontró esta guía perspicaz? Siéntase libre de darle me gusta y compartirlo a través de sus plataformas de redes sociales. Tus comentarios son bienvenidos.

Leer también : 25 ejemplos de comandos principales para monitorear el rendimiento del servidor Linux

Entradas relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *