En Linux, una instancia en ejecución de un programa se denomina proceso. Ocasionalmente, cuando trabaje en una máquina Linux, es posible que necesite averiguar qué procesos se están ejecutando actualmente.
Hay varios comandos que puede usar para encontrar información sobre los procesos en ejecución, con ps
, pstree
y top
siendo los más utilizados.
Este artículo explica cómo usar el ps
Comando para enumerar los procesos que se están ejecutando actualmente y mostrar información sobre esos procesos.
Cómo usar ps
Comando #
La sintaxis general para ps
El comando es el siguiente:
ps [OPTIONS]
Por razones históricas y de compatibilidad, ps
El comando acepta varios tipos diferentes de opciones:
- Opciones de estilo UNIX, precedidas por un solo guión.
- Opciones de estilo BSD, usadas sin guión.
- Opciones largas de GNU, precedidas por dos guiones.
Se pueden mezclar diferentes tipos de opciones, pero en algunos casos particulares, pueden aparecer conflictos, por lo que es mejor quedarse con un tipo de opción.
Las opciones de BSD y UNIX se pueden agrupar.
En su forma más simple, cuando se usa sin ninguna opción, ps
imprimirá cuatro columnas de información para un mínimo de dos procesos que se ejecutan en el shell actual, el propio shell y los procesos que se ejecutan en el shell cuando se invocó el comando.
ps
La salida incluye información sobre el shell (bash
) y el proceso que se ejecuta en este shell (ps
, el comando que escribiste):
PID TTY TIME CMD
1809 pts/0 00:00:00 bash
2043 pts/0 00:00:00 ps
Las cuatro columnas están etiquetadas como PID
, TTY
, TIME
y CMD
.
PID
- El identificador del proceso. Por lo general, cuando se ejecutaps
comando, la información más importante que busca el usuario es el PID del proceso. Conocer el PID le permite eliminar un proceso que no funciona correctamente.TTY
- El nombre del terminal de control del proceso.TIME
- El tiempo de CPU acumulado del proceso, que se muestra en minutos y segundos.CMD
- El nombre del comando que se utilizó para iniciar el proceso.
El resultado anterior no es muy útil ya que no contiene mucha información. El verdadero poder del ps
El comando viene cuando se inicia con opciones adicionales.
El ps
El comando acepta una gran cantidad de opciones que se pueden usar para mostrar un grupo específico de procesos y diferente información sobre el proceso, pero solo se necesitan unas pocas en el uso diario.
ps
se usa más frecuentemente con la siguiente combinación de opciones:
formulario BSD :
ps aux
- El
a
opción le dice aps
para mostrar los procesos de todos los usuarios. Solo no se muestran los procesos que no están asociados a una terminal y los procesos de los líderes de grupo. u
significa un formato orientado al usuario que proporciona información detallada sobre los procesos.- El
x
opción instruye aps
para listar los procesos sin una terminal de control. Esos son principalmente procesos que se inician en el momento del arranque y se ejecutan en segundo plano.
El comando muestra información en once columnas etiquetadas como USER
, PID
, %CPU
, %MEM
, VSZ
, RSS
, STAT
, START
, TTY
, TIME
y CMD
.
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.8 77616 8604 ? Ss 19:47 0:01 /sbin/init
root 2 0.0 0.0 0 0 ? S 19:47 0:00 [kthreadd]
...
Ya explicamos PID
, TTY
, TIME
y CMD
etiquetas. Aquí hay una explicación de otras etiquetas:
USER
- El usuario que ejecuta el proceso.%CPU
- La utilización de cpu del proceso.%MEM
- El porcentaje del tamaño del conjunto residente del proceso en la memoria física de la máquina.VSZ
- Tamaño de memoria virtual del proceso en KiB.RSS
- El tamaño de la memoria física que utiliza el proceso.STAT
- El código de estado del proceso, comoZ
(zombi),S
(dormido) yR
(corriendo).START
- La hora en que se inició el comando.
El f
opción le dice a ps
para mostrar una vista de árbol de los procesos de padre a hijo:
ps auxf
El ps
El comando también le permite ordenar la salida. Por ejemplo, para ordenar la salida según el uso de la memoria, usaría:
ps aux --sort=-%mem
formulario UNIX :
ps -ef
- El
-e
opción instruye aps
para mostrar todos los procesos. - El
-f
destaca la lista de formato completo, que proporciona información detallada sobre los procesos.
El comando muestra información en ocho columnas etiquetadas como UID
, PID
, PPID
, C
, STIME
, TIME
y CMD
.
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 19:47 ? 00:00:01 /sbin/init
root 2 0 0 19:47 ? 00:00:00 [kthreadd]
...
Las etiquetas que no están ya explicadas tienen el siguiente significado:
UID
- Igual queUSER
, el usuario que ejecuta el proceso.PPID
- El ID del proceso padre.C
- Igual que%CPU
, la utilización de la CPU del proceso.STIME
- Igual queSTART
, la hora en que se inició el comando.
Para ver solo los procesos que se ejecutan como un usuario específico, escriba el siguiente comando, donde linuxize
es el nombre del usuario:
ps -f -U linuxize -u linuxize
Formato definido por el usuario #
El o
La opción le permite especificar qué columnas se muestran cuando se ejecuta el ps
comando.
Por ejemplo, para imprimir información solo sobre el PID
y COMMAND
, ejecutaría uno de los siguientes comandos:
ps -efo pid,comm
ps auxo pid,comm
Usando ps
Con otros comandos #
ps
se puede usar en combinación con otros comandos a través de tuberías.
Si desea mostrar la salida de ps
comando, una página a la vez canalícelo a less
comando:
ps -ef | less
La salida del ps
El comando se puede filtrar con grep
. Por ejemplo, para mostrar solo el proceso que pertenece al usuario raíz, ejecutaría:
ps -ef | grep root
Conclusión #
El ps
El comando es uno de los comandos más utilizados al solucionar problemas en los sistemas Linux. Tiene muchas opciones, pero por lo general, la mayoría de los usuarios usan ps aux
o ps -ef
para recopilar información sobre los procesos en ejecución.
Para más información sobre ps
, escribe man ps
en tu terminal.
Si tiene alguna pregunta o comentario, no dude en dejar un comentario.