El comando ps invoca la tabla de procesos, un registro que resume los procesos que se están ejecutando actualmente en un sistema. Cuando el comando se ejecuta sin ninguna opción, muestra los procesos ejecutados por el shell actual con detalles como el PID, el terminal asociado con el proceso, el tiempo de CPU acumulado y el comando que inició el proceso. Sin embargo, se pueden usar diferentes opciones junto con el comando para filtrar los campos o procesos mostrados.
Sintaxis
La sintaxis del comando ps es:
$ ps [options]
Estilos de sintaxis de opción de comando
El comando ps admite tres estilos diferentes de sintaxis de opción de comando:estilo Unix (precedido por un guión), estilo GNU (precedido por dos guiones) y estilo BSD (sin guión). Mezclar estos estilos no siempre producirá los mismos resultados. Por ejemplo, el comando ps (estilo BSD) imprimirá todos los procesos con un terminal de control, incluidos los líderes de sesión (el primer miembro de un grupo de procesos). También imprimirá el estado de cada proceso, así como el comando completo (incluidas las opciones) de cada proceso. El comando ps -a (estilo Unix) también imprime todos los procesos con una terminal de control, pero no incluye los líderes de sesión, el estado de cada proceso ni el comando completo de cada proceso.
Opciones de comando ps
El comando ps admite varias opciones. Algunas de las opciones más destacadas se enumeran aquí.
Opción | Solía |
---|---|
un | Lista de todos los procesos activados por el usuario. |
-e | Lista de todos los procesos. |
-l | Lista de procesos utilizando un formato de lista larga. |
u | Lista de procesos junto con el nombre de usuario y la hora de inicio. |
r | Excluye procesos que no se están ejecutando actualmente. |
x | Incluir procesos sin terminal. |
T | Excluye los procesos iniciados por cualquier terminal que no sea el actual. |
-U {nombre de usuario} | Muestra los procesos basados en el usuario especificado. |
-p {PID | Mostrar solo el proceso asociado con el PID especificado. |
-C {comando} | Mostrar todos los procesos por nombre de comando. |
–tty {número de terminal} | Muestra todos los procesos que se ejecutan en el terminal especificado. |
Ejemplos de comandos ps
1. Para ver el proceso zombie:
# ps aux | awk '{ print $8 " " $2 }' | grep -w Z
2. Listado de procesos zombis:
# ps -el | grep Z
3. Para buscar/enumerar los procesos en ejecución:
# ps -r
4. Encuentra procesos para un usuario en particular:
# ps -U apache # ps U apache # ps -u apache
5. Para ver todos los procesos que se ejecutan como root (identificación real y efectiva) en formato de usuario:
# ps -U root u
6. Para encontrar/listar los procesos que tienen test.pl en su ejecución de comando:
# ps -f -C test.pl
7. Enumere los procesos basados en PID:
# ps -f --ppid 9576
8. pgrep, pkill:buscar o señalar procesos en función del nombre y otros atributos:
# pgrep 1234 # pkill 1234 OR # pkill httpd
9. Clasificación de la salida ps:
# ps -eo uname,pid,ppid,nlwp,pcpu,pmem,psr,start_time,tty,time,args --sort -pcpu,-pmem
10. Para imprimir un árbol de procesos:
# ps -ejH # ps axjf
11. Imprima solo los ID de proceso de syslogd:
# ps -C syslogd -o pid=
12. Escriba solo el nombre del PID 42:
# ps -p 42 -o comm=
13. Enumere el proceso según el UID y los comandos:
# ps -f -u wwwrun,postfix
14. Enumere los procesos basados en PID o PPID:
# ps -f --ppid 9576
15. Lista de procesos en una jerarquía:
# ps -e -o pid,args --forest
16. Enumere el tiempo de pared transcurrido para los procesos:
# ps -p 1,29675 -o pid,etime=
17. Para listar la jerarquía del proceso:
# ps -e -o pid,args --forest # ps axjf # ps -ejH
18. Enumere todos los subprocesos para un proceso en particular:
# ps -C java -L -o pid,tid,pcpu,state,nlwp,args
19. Para mostrar un árbol de procesos:
# pstree
20. Para enumerar el tiempo de pared transcurrido para los procesos:
# ps -p 1,29675 -o pid,etime=
21. Para obtener la hora de inicio del proceso:
# ps -p PID -o lstart=
22. Mostrar información completa sobre cada uno de los procesos que se están ejecutando actualmente:
# ps -ef | grep
23. Para obtener información sobre hilos:
# ps -eLf # ps axms
24. Para obtener información de seguridad:
# ps -eo euser,ruser,suser,fuser,f,comm,label # ps axZ # ps -eM
25. Para ver cada proceso con un formato definido por el usuario:
# ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm # ps axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm # ps -eopid,tt,user,fname,tmout,f,wchan
26. Enumere todos los subprocesos para un proceso en particular:
# ps -C java -L -o pid,tid,pcpu,state,nlwp,args
27. Enumere todos los procesos en ejecución, incluida la cadena de comando completa:
# ps auxww
28. Busque un proceso que coincida con una cadena:
# ps aux | grep string
29. Enumere todos los procesos del usuario actual en formato extra completo:
# ps --user $(id -u) -F
30. Enumere todos los procesos del usuario actual como un árbol:
# ps --user $(id -u) f
31. Obtenga el PID padre de un proceso:
# ps -o ppid= -p pid
32. Ordenar procesos por consumo de memoria:
# ps --sort size