Búsqueda de sitios web

30 ejemplos útiles de 'comando ps' para la supervisión de procesos de Linux


ps (estado de procesos) es una utilidad nativa de Unix/Linux para ver información relativa a una selección de procesos en ejecución en un sistema: lee esta información de los archivos virtuales en el directorio/sistema de archivos proc. Es una de las utilidades importantes para la administración del sistema, específicamente en el monitoreo de procesos, para ayudarlo a comprender qué sucede en un sistema Linux.

Tiene numerosas opciones para manipular su salida, sin embargo, encontrará una pequeña cantidad de ellas prácticamente útiles para el uso diario.

Lea también: Todo lo que necesita saber sobre procesos en Linux [Guía completa]

En este artículo, veremos 30 ejemplos útiles de comandos ps para monitorear procesos activos en ejecución en un sistema Linux.

Tenga en cuenta que ps produce resultados con una línea de encabezado, que representa el significado de cada columna de información; puede encontrar el significado de todas las etiquetas en la página de manual de ps.

Listar todos los procesos en el Shell actual

1. Si ejecuta el comando ps sin ningún argumento, muestra los procesos para el shell actual.

ps 

Imprima todos los procesos en diferentes formatos

2. Muestra todos los procesos activos en un sistema Linux en formato genérico (Unix/Linux).

ps -A
OR
ps -e

3. Muestra todos los procesos en formato BSD.

ps au
OR
ps axu

4. Para realizar un listado en formato completo, agregue la marca -f o -F.

ps -ef
OR
ps -eF

Mostrar procesos en ejecución del usuario

5. Puede seleccionar todos los procesos de su propiedad (ejecutor del comando ps, raíz en este caso), escriba:

ps -x 

6. Para mostrar los procesos de un usuario por ID de usuario real (RUID) o nombre, utilice el indicador -U.

ps -fU tecmint
OR
ps -fu 1000

7. Para seleccionar los procesos de un usuario por ID de usuario efectivo (EUID) o nombre, utilice la opción -u .

ps -fu tecmint
OR
ps -fu 1000

Imprima todos los procesos que se ejecutan como raíz (ID real y efectiva)

8. El siguiente comando le permite ver cada proceso que se ejecuta con privilegios de usuario root (ID real y efectivo) en formato de usuario.

ps -U root -u root 

Mostrar procesos de grupo

9. Si desea enumerar todos los procesos que pertenecen a un determinado grupo (ID de grupo real (RGID) o nombre), escriba.

ps -fG apache
OR
ps -fG 48

10. Para enumerar todos los procesos que pertenecen al nombre de grupo (o sesión) efectivo, escriba.

ps -fg apache

Mostrar procesos por PID y PPID

11. Puede enumerar los procesos por PID de la siguiente manera.

ps -fp 1178

12. Para seleccionar el proceso por PPID, escriba.

ps -f --ppid 1154

13. Realice una selección utilizando una lista PID.

ps -fp 2226,1154,1146

Mostrar procesos por TTY

14. Para seleccionar procesos por tty, utilice el indicador -t de la siguiente manera.


ps -t pts/0
ps -t pts/1
ps -ft tty1

Imprimir árbol de procesos

15. Un árbol de procesos muestra cómo los procesos del sistema están vinculados entre sí; Los procesos cuyos padres han sido eliminados son adoptados por init (o systemd).

ps -e --forest 

16. También puede imprimir un árbol de procesos para un proceso determinado como este.

ps -f --forest -C sshd
OR
ps -ef --forest | grep -v grep | grep sshd 

Hilos del proceso de impresión

17. Para imprimir todos los hilos de un proceso, use el indicador -L, esto mostrará el LWP (proceso liviano), así como las columnas NLWP (número de procesos ligeros).

ps -fL -C httpd

Especificar formato de salida personalizado

Usando las opciones -o o –format, ps le permite crear formatos de salida definidos por el usuario como se muestra a continuación.

18. Para enumerar todos los especificadores de formato, incluya la marca L.

ps L

19. El siguiente comando le permite ver el PID, el PPID, el nombre de usuario y el comando de un proceso.

ps -eo pid,ppid,user,cmd

20. A continuación se muestra otro ejemplo de un formato de salida personalizado que muestra el grupo del sistema de archivos, el valor agradable, la hora de inicio y el tiempo transcurrido de un proceso.

ps -p 1154 -o pid,ppid,fgroup,ni,lstart,etime

21. Para encontrar un nombre de proceso usando su PID.

ps -p 1154 -o comm=

Mostrar procesos padre e hijo

22. Para seleccionar un proceso específico por su nombre, use el indicador -C, esto también mostrará todos sus procesos secundarios.

ps -C sshd

23. Encuentre todos los PID de todas las instancias de un proceso, lo que resulta útil al escribir scripts que necesitan leer PID de una salida o archivo estándar.

ps -C httpd -o pid=

24. Comprobar el tiempo de ejecución de un proceso.

ps -eo comm,etime,user | grep httpd

El siguiente resultado muestra que el servicio HTTPD ha estado ejecutándose durante 1 hora, 48 minutos y 17 segundos.

Solucionar problemas de rendimiento del sistema Linux

Si su sistema no funciona como debería, por ejemplo, si es inusualmente lento, puede solucionar algunos problemas del sistema de la siguiente manera.

26. Encuentre los principales procesos en ejecución según el mayor uso de memoria y CPU en Linux.

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

27. Para eliminar procesos de Linux/aplicaciones que no responden o cualquier proceso que consuma mucho tiempo de CPU.

Primero, busque el PID del proceso o aplicación que no responde.

ps -A | grep -i stress

Luego use el comando kill para finalizarlo inmediatamente.

kill -9 2583 2584

Imprimir información de seguridad

28. Muestre el contexto de seguridad (específicamente para SELinux) como este.

ps -eM
OR
ps --context

29. También puede mostrar información de seguridad en un formato definido por el usuario con este comando.

ps -eo  euser,ruser,suser,fuser,f,comm,label

Realice un monitoreo de procesos en tiempo real utilizando la utilidad Watch

30. Finalmente, dado que ps muestra información estática, puede emplear la utilidad watch para realizar un monitoreo de procesos en tiempo real con resultados repetitivos, que se muestran cada segundo como en el siguiente comando. (especifique un comando ps personalizado para lograr su objetivo).

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

Importante: ps solo muestra información estática; para ver resultados actualizados con frecuencia, puede utilizar herramientas como htop; arriba y vistazos: los dos últimos son, de hecho, herramientas de monitoreo del rendimiento del sistema Linux.

Quizás también te interese leer los siguientes artículos relacionados.

  1. Cómo encontrar un nombre de proceso usando el número PID en Linux
  2. Encuentre los principales procesos en ejecución según el mayor uso de memoria y CPU en Linux
  3. Una guía de los comandos Kill, Pkill y Killall para finalizar un proceso en Linux
  4. Cómo encontrar y eliminar procesos en ejecución en Linux
  5. Cómo iniciar el comando de Linux en segundo plano y desconectar el proceso en la terminal

Eso es todo por ahora. Si tiene algún ejemplo útil de comando ps para compartir (sin olvidar explicar lo que hace), utilice el formulario de comentarios a continuación.