En Linux, una instancia en ejecución de un programa se llama proceso. Ocasionalmente, al trabajar en una máquina Linux, es posible que deba 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
son los más utilizados.
Este Este artículo explica cómo usar el comando ps
para enumerar los procesos que se están ejecutando actualmente y mostrar información sobre esos procesos.
Cómo usar el comando ps #
La sintaxis general del comando ps
es la siguiente:
Por razones históricas y de compatibilidad, el comando ps
acepta varios tipos diferentes de opciones:
- Opciones de estilo UNIX, precedidas por un solo guión.
- Opciones de estilo BSD, utilizadas sin un guión.
- Opciones largas de GNU, precedidas por dos guiones.
Diferentes tipos de opciones ca n mezclarse, pero en algunos casos particulares pueden aparecer conflictos, por lo que es mejor quedarse con un tipo de opción.
Las opciones BSD y UNIX pueden agruparse.
En su forma más simple formulario, cuando se utiliza 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 el se invocó el comando.
La salida incluye información sobre el shell (bash
) y el proceso que se ejecuta en este shell (ps
, el comando que escribió):
Las cuatro columnas están etiquetadas como PID
, TTY
, TIME
y CMD
.
-
PID
: el ID del proceso. Normalmente, cuando se ejecuta el comandops
, la información más importante que busca el usuario es el PID del proceso. Conocer el PID le permite eliminar un proceso que funciona mal. -
TTY
: el nombre de la 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.
La salida anterior no es muy útil ya que no contiene mucha información. El poder real del comando ps
viene cuando se ejecuta con opciones adicionales.
El comando ps
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 con más frecuencia con la siguiente combinación de opciones:
Forma BSD:
- El
a
La opción le dice aps
que muestre los procesos de todos los usuarios. Solo no se muestran los procesos que no están asociados con una terminal y los procesos de los líderes de grupo. -
u
representa un formato orientado al usuario que proporciona información detallada sobre el procesos. - La opción
x
indica aps
que enumere los procesos sin una terminal de control. Estos son principalmente procesos que se inician durante el arranque y se ejecutan en segundo plano.
El comando muestra información en once columnas etiquetadas USER
, PID
, %CPU
, %MEM
, VSZ
, RSS
, STAT
, START
, TTY
, TIME
y CMD
.
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 la 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 la memoria virtual del proceso en KiB. -
RSS
– El tamaño de la memoria física que está usando el proceso. -
STAT
: el código de estado del proceso, comoZ
(zombie),S
(durmiendo) yR
(en ejecución). -
START
: la hora en que se inició el comando.
La opción f
le dice a ps
que muestre una vista de árbol de los procesos padre a hijo:
El comando ps
también le permite ordenar la salida. Por ejemplo, para ordenar la salida según el uso de memoria, usaría:
Forma UNIX:
- La opción
-e
indica aps
que muestre todos los procesos. - El
-f
es una lista de formato completo, que proporciona información detallada sobre los procesos.
El comando muestra información en ocho columnas etiquetadas UID
, PID
, PPID
, C
, STIME
, TIME
y CMD
.
Las etiquetas que aún no se explican tienen el siguiente significado:
-
UID
– Igual queUSER
, el usuario que ejecuta el proceso. -
PPID
: el ID del proceso principal. -
C
– Sam e como%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:
Formato definido por el usuario #
El o
le permite especificar qué columnas se muestran cuando se ejecuta el comando ps
.
Por ejemplo, para imprimir información solo sobre PID
y COMMAND
, ejecutaría uno de los siguientes comandos:
Uso de 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 del comando ps
, una página a la vez e canalícelo al less
comando:
La salida del ps
se puede filtrar con grep
. Por ejemplo, para mostrar solo el proceso que pertenece al usuario root, ejecutaría:
Conclusión #
La ps
es uno de los comandos más utilizados para solucionar problemas en sistemas Linux. Tiene muchas opciones, pero por lo general, la mayoría de los usuarios utilizan ps aux
o ps -ef
para recopilar información sobre los procesos en ejecución.
Para obtener más información sobre ps
, escriba man ps
en su terminal.