GNU/Linux >> Tutoriales Linux >  >> Linux

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 de CPU 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, profundizamos más y te dejamos 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 con una terminal

Esto es muy parecido a enumerar los procesos en el shell. Para enumerar los procesos asociados con la 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 indicador -A como se muestra:

[[email protected] ~]$ ps -A

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

[[email protected] ~]$ ps -e

4) Mostrar la salida en formato BSD

Para listar los procesos en formato BSD, ejecute el comando

$ ps -aux

Analicemos el comando:

El indicador -a indica a ps que muestre todos los procesos de todos los usuarios. Esto, sin embargo, excluye los procesos asociados con 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.

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 o la 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 la 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.

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

  • PPID:se refiere al ID del proceso principal
  • C:se refiere al %CPU o porcentaje de 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. La bandera -o determina qué columnas se mostrarán al ejecutar el comando ps. En el siguiente ejemplo, solo el PID y COMENZAR 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, use el indicador -u como se muestra”

$ ps -u usuario

O

$ ps -u uid

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

$ ps -u linuxtechi

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

$ id 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

Para el usuario root, ejecute el comando

$ ps -u root

De manera similar, puede verificar usando el uid del usuario root 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

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 de grupo 'apache simplemente especifique el GID no. 48.

$ ps -fG 48

9) Visualización de procesos usando PID y PPID

Los procesos de Linux también se pueden mostrar usando el PID (ID 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 listar procesos por PPID, ejecute

$ ps -f –ppid

Por ejemplo, para enumerar procesos propiedad de PPID 31903 ejecutar

$ ps -f --ppid 31903

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, use el indicador -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 los procesos por el valor de tty, use el indicador -t . Por ejemplo, para mostrar los procesos adjuntos a tty1, ejecute el comando ps como se muestra:

$ ps -ft tty1

12) Imprimir 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

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

Para filtrar un proceso usando el subproceso del proceso, use el marcador -L como se muestra,

$ ps -L 1446

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'

El comando imprime las columnas pid,ppid,cmd,%mem y %cpu y monitorea las estadísticas cada segundo mientras clasifica el %Uso de 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 memoria y CPU

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,

16) Eliminación de 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 kill, el ejemplo se muestra a continuación,

$ kill -9 2583 2584

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

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

$ ps -C -o pid=

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

$ ps -C httpd -o pid=

18) Mostrar la duración de ejecución de los procesos

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

$ ps -eo comm,etime,user

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, use -C flag 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 limitarse al proceso php, ejecute el comando:

$ ps -ef | grep php

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.

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


Linux
  1. 7 ejemplos de comandos Linux df

  2. 8 ejemplos de comandos TR de Linux

  3. Ejemplos de comandos rm en Linux

  4. Ejemplos de comandos ps en Linux

  5. w Ejemplos de comandos en Linux

Comando Linux PS con ejemplos

15 ejemplos de comandos TOP simples en Linux para monitorear procesos

10 ejemplos del comando ss de Linux para monitorear conexiones de red

Comando ps de Linux:20 ejemplos de la vida real

Ejemplos de comandos id en Linux

Comando Linux fuser con ejemplos