30 Ejemplos útiles de «comando ps» para la supervisión de procesos de Linux
ps (estado de los 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 / proc filesystem. Es una de las utilidades importantes para la administración del sistema específicamente bajo la supervisión 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 muchos de ellos son prácticamente útiles para el uso diario.
Lea también: Todo lo que necesita saber sobre los procesos en Linux
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 ps man página.
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
Imprimir todos los procesos en diferentes formatos
2. Muestra todos los procesos activos en un sistema Linux en formato genérico (Unix / Linux).
$ ps -AOR$ ps -e
3. Muestra todos los procesos en formato BSD.
$ ps auOR$ ps axu
4. Para realizar una lista de formato completo, agregue la marca -f
o -F
.
$ ps -efOR$ ps -eF
Mostrar los 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 marca -U
.
$ ps -fU tecmintOR$ ps -fu 1000
7. Para seleccionar los procesos de un usuario por ID de usuario efectivo (EUID) o nombre, use la opción -u
.
$ ps -fu tecmintOR$ 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 root (ID real & 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 apacheOR$ ps -fG 48
10. Para enumerar todos los procesos que pertenecen al nombre de grupo efectivo (o sesión), 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. Haga la selección usando la lista PID.
$ ps -fp 2226,1154,1146
Mostrar procesos por TTY
14. Para seleccionar procesos por tty, use la marca -t de la siguiente manera.
$ ps -t pst/0$ ps -t pst/1$ ps -ft tty1
Árbol de procesos 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
16. También puede imprimir un árbol de procesos para un proceso dado como este.
$ ps -f --forest -C sshdOR$ ps -ef --forest | grep -v grep | grep sshd
Subprocesos de proceso de impresión
17. Para imprimir todos los hilos de un proceso, use el indicador -H
, esto mostrará las columnas LWP (proceso ligero) y 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 el indicador L
.
$ ps L
19. El comando siguiente le permite ver el PID, PPID, nombre de usuario y 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 la bandera -C, esto también mostrará todos sus procesos secundarios.
$ ps -C sshd
23. Encuentre todos los PID de todas las instancias de un proceso, útil al escribir scripts que necesitan leer PID de una salida o archivo estándar.
$ ps -C httpd -o pid=
24. Verifique el tiempo de ejecución de un proceso.
$ ps -eo comm,etime,user | grep httpd
El resultado a continuación muestra que el servicio HTTPD se ha estado ejecutando durante 1 hora, 48 minutos y 17 segundos.
Solucionar problemas 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 | headOR$ 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 usa el comando kill para terminarlo inmediatamente.
$ kill -9 2583 2584
Imprimir información de seguridad
28. Muestra el contexto de seguridad (específicamente para SELinux) de esta manera.
$ ps -eMOR$ ps --context
29. También puede mostrar información de seguridad en formato definido por el usuario con este comando.
$ ps -eo euser,ruser,suser,fuser,f,comm,label
Realice el monitoreo de procesos en tiempo real usando la utilidad Watch
30. Finalmente, dado que ps muestra información estática, puede emplear la utilidad de reloj 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"
Importante: ps solo muestra información estática, para ver los resultados que se actualizan con frecuencia, puede usar herramientas como htop; arriba y un vistazo: los dos últimos son, de hecho, una herramienta 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 Comandos Kill, Pkill y Killall para terminar un proceso en Linux
- Cómo encontrar y matar procesos en ejecución en Linux
- Cómo iniciar el comando Linux en segundo plano y desconectar el proceso en la terminal