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 sistema de archivos / proc. Es una de las utilidades importantes para la administración de sistemas específicamente bajo supervisión de procesos, para ayudarlo a comprender qué está sucediendo 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 los 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 una salida 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 .
Enumerar 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
Enumerar los procesos en ejecución actuales
Imprima todos los procesos en diferentes formatos
2. Visualice todos los procesos activos en un sistema Linux en formato genérico (Unix / Linux).
$ ps -A OR $ ps -e
Lista de procesos en formato estándar
3. Visualice todos los procesos en formato BSD .
$ ps au OR $ ps axu
Lista de procesos en formato BSD
4. Para realizar una lista de formato completo, agregue la marca -f
o -F
.
$ ps -ef OR $ ps -eF
Procesos de lista en formato de lista larga
Mostrar procesos en ejecución del usuario
5. Puede seleccionar todos los procesos de su propiedad (corredor del comando ps , root en este caso), escriba:
$ ps -x
6. Para mostrar los procesos de un usuario por ID de usuario real ( RUID ) o nombre, use la -U
bandera.
$ ps -fU tecmint OR $ ps -fu 1000
Lista de procesos de usuario por ID
7. Para seleccionar los procesos de un usuario por ID de usuario efectivo ( EUID ) o nombre, use la -u
opción.
$ ps -fu tecmint OR $ ps -fu 1000
Imprima todos los procesos que se ejecutan como raíz (ID real y efectivo)
8. El siguiente comando le permite ver todos los procesos que se ejecutan con privilegios de usuario raíz (ID real y efectivo) en formato de usuario.
$ ps -U root -u root
Mostrar procesos en ejecución del usuario raíz
Procesos de grupo de visualización
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
Procesos de grupo de visualización
10. Para enumerar todos los procesos que pertenecen al nombre de grupo efectivo (o sesión), escriba.
$ ps -fg apache
Procesos de visualización por PID y PPID
11. Puede enumerar los procesos por PID de la siguiente manera.
$ ps -fp 1178
Listar procesos por PID
12. Para seleccionar el proceso por PPID , escriba.
$ ps -f --ppid 1154
Listar proceso por PPID
13. Realice una selección utilizando una lista PID .
$ ps -fp 2226,1154,1146
Listar procesos por PID
Procesos de visualización por TTY
14. Para seleccionar procesos por tty , use el indicador -t de la siguiente manera.
$ ps -t pts/0 $ ps -t pts/1 $ ps -ft tty1
Listar procesos por TTY
Árbol de proceso de impresión
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
Listar árbol de procesos
16. También puede imprimir un árbol de procesos para un proceso dado como este.
$ ps -f --forest -C sshd OR $ ps -ef --forest | grep -v grep | grep sshd
Vista de árbol de lista del proceso
Hilos de proceso de impresión
17. Para imprimir todos los hilos de un proceso, use la -L
bandera, esto mostrará las columnas LWP ( proceso ligero ) así como NLWP ( número de procesos ligeros ).
$ ps -fL -C httpd
Listar subprocesos de proceso
Especificar formato de salida personalizado
Con 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 L
bandera.
$ ps L
19. El siguiente comando le permite ver el PID , PPID , nombre de usuario y comando de un proceso.
$ ps -eo pid,ppid,user,cmd
Listar procesos con nombres
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
Mostrar información de ID de proceso
21. Encontrar un nombre de proceso usando su PID.
$ ps -p 1154 -o comm=
Encontrar proceso usando PID
Mostrar procesos padre e hijo
22. Para seleccionar un proceso específico por su nombre, use la bandera -C, esto también mostrará todos sus procesos secundarios.
$ ps -C sshd
Encontrar el proceso padre-hijo
23. Encuentre todos los PID de todas las instancias de un proceso, lo que resulta útil al escribir scripts que necesitan leer los PID de un archivo o salida estándar.
$ ps -C httpd -o pid=
Buscar todos los PID de proceso
24. Verificar el tiempo de ejecución de un proceso.
$ ps -eo comm,etime,user | grep httpd
El siguiente resultado muestra que el servicio HTTPD se ha estado ejecutando durante 1 hora, 48 minutos y 17 segundos.
Encuentre el tiempo de actividad del proceso
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 por 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
Encuentre los mejores procesos en ejecución
27. Para matar 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 terminarlo inmediatamente.
$ kill -9 2583 2584
Encuentra y elimina un proceso
Imprimir información de seguridad
28. Muestre el contexto de seguridad (específicamente para SELinux ) de esta manera.
$ ps -eM OR $ ps --context
Encuentra el contexto de SELinux
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
Enumere el contexto de SELinux por usuarios
Realice la supervisión de procesos en tiempo real con 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 salida repetitiva, que se muestra después de cada segundo como en el comando a continuación (especifique un comando ps personalizado para lograr su objetivo).
$ watch -n 1 'ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head'
Monitoreo de procesos en tiempo real
Importante : ps solo muestra información estática, para ver la salida actualizada con frecuencia puede usar herramientas como htop arriba, y miradas: las dos últimas son, de hecho, herramientas de supervisión del rendimiento del sistema Linux.
También le puede interesar leer los siguientes artículos relacionados.
- Cómo encontrar un nombre de proceso usando el número PID en Linux
- Encuentre los principales procesos en ejecución por mayor uso de memoria y CPU en Linux
- Una guía para los comandos Kill, Pkill y Killall para finalizar un proceso en Linux
- Cómo encontrar y eliminar procesos en ejecución en Linux
- 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), use el formulario de comentarios a continuación.
Comandos de Linux