¿Qué significa aux en `ps aux`?

162

ps auxparece enumerar convenientemente todos los procesos y su estado y uso de recursos (Linux / BSD / MacOS), sin embargo, no puedo comprender el significado del auxuso de parámetros man ps.

Que auxsignifica

Howard
fuente

Respuestas:

209

a = mostrar procesos para todos los usuarios
u = mostrar el usuario / propietario del proceso
x = también mostrar procesos no conectados a un terminal

Por cierto, man pses un buen recurso.

Históricamente, BSD y AT&T desarrollaron versiones incompatibles de ps. Las opciones sin un guión principal (según la pregunta) son el estilo BSD, mientras que las que tienen un guión principal son el estilo AT&T Unix. Además de esto, Linux desarrolló una versión que admite ambos estilos y luego agrega un tercer estilo con opciones que comienzan con guiones dobles.

Todas (o casi todas) las distribuciones de Linux no incrustadas usan una variante de la suite procps . Las opciones anteriores son las definidas en la página de manual de procpsps .

En los comentarios, usted dice que está utilizando Apple MacOS (OSX, supongo). La página de manual de OSX para psestá aquí y muestra soporte solo para el estilo AT&T.

John1024
fuente
1
@HowardGuo ¿Estás seguro de que no es -utan diferente a solo u?
jordanm
2
@HowardGuo He actualizado la respuesta para reflejar las diferencias entre la versión de GNU (Linux) psy la versión de Apple OSX. Esta pregunta está etiquetada actualmente como "Linux". Si también está preguntando sobre MacOS, es posible que desee actualizar las etiquetas.
John1024
1
Muchas gracias. Acabo de revisar la página de manual de ps en Linux y tiene información sobre aux, la página de manual de MacOS no tiene dicha información, podría ser un error de documento.
Howard
2
La página de manual de OSX para psdice "... ps auxtodavía funciona como lo hizo en Tiger" en la sección "Descripción del Legado".
dev
3
Tengo que objetar el comentario de que " man pses un buen recurso en Mac OSX. La página de manual, solo al final, señala que ps auxse mantiene como una conveniencia, pero no hay absolutamente ninguna pista de que se puedan especificar opciones sin guiones iniciales antes Al final, la página de manual es larga y muy compleja, y un lector puede pasar mucho tiempo cuestionando su cordura antes de darse por vencido y buscar en Google esta pregunta de intercambio de fichas.
Reb.Cabin
15
   a      Lift the BSD-style "only yourself" restriction, which is imposed 
          upon the set of all processes when some BSD-style (without "-") 
          options are used or when the ps personality setting is BSD-like.  
          The set of processes selected in this manner is in addition to the 
          set of processes selected by other means.  An alternate 
          description is that this option causes ps to list all processes 
          with a terminal (tty), or to list all processes when used together 
          with the x option.

   u      Display user-oriented format.

   x      Lift the BSD-style "must have a tty" restriction, which is imposed 
          upon the set of all processes when some BSD-style (without "-") 
          options are used or when the ps personality setting is BSD-like.
          The set of processes selected in this manner is in addition to the 
          set of processes selected by other means.  An alternate 
          description is that this option causes ps to list all processes 
          owned by you (same EUID as ps), or to list all processes when used 
          together with the a option.

Ejemplo

$ ps aux | head -10
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.0  51120  2796 ?        Ss   Dec22   0:09 /usr/lib/systemd/systemd --system --deserialize 22
root         2  0.0  0.0      0     0 ?        S    Dec22   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S    Dec22   0:04 [ksoftirqd/0]
root         5  0.0  0.0      0     0 ?        S<   Dec22   0:00 [kworker/0:0H]
root         7  0.0  0.0      0     0 ?        S    Dec22   0:15 [migration/0]
root         8  0.0  0.0      0     0 ?        S    Dec22   0:00 [rcu_bh]
root         9  0.0  0.0      0     0 ?        S    Dec22   2:47 [rcu_sched]
...
saml      3015  0.0  0.0 117756   596 pts/2    Ss   Dec22   0:00 bash
saml      3093  0.9  4.1 1539436 330796 ?      Sl   Dec22  70:16 /usr/lib64/thunderbird/thunderbird
saml      3873  0.0  0.1 1482432 8628 ?        Sl   Dec22   0:02 gvim -f
root      5675  0.0  0.0 124096   412 ?        Ss   Dec22   0:02 /usr/sbin/crond -n
root      5777  0.0  0.0  51132  1068 ?        Ss   Dec22   0:08 /usr/sbin/wpa_supplicant -u -f /var/log/wpa_supplica
saml      5987  0.7  1.5 1237740 119876 ?      Sl   Dec26  14:05 /opt/google/chrome/chrome --type=renderer --lang=en-
root      6115  0.0  0.0      0     0 ?        S    Dec27   0:06 [kworker/0:2]
...

Con los modificadores anteriores, obtendrá resultados con respecto a sus procesos como los anteriores.

Los interruptores auxle mostrarán:

  • todos los procesos de los usuarios
  • mostrarle el proceso listado de una manera orientada al usuario (por nombre de usuario)
  • mostrarle todos los procesos, no solo los que están conectados a una terminal. Esto incluirá procesos como servicios como crond, upowerd, etc.
slm
fuente
6

La clave para comprender la página de manual no es buscar "aux" (que probé primero), sino centrarse en la sección que describe los tipos de parámetros que se psrequieren:

Esta versión de ps acepta varios tipos de opciones:

  1. Opciones de UNIX, que pueden estar agrupadas y deben ir precedidas de un guión.
  2. Opciones de BSD, que pueden agruparse y no deben usarse con un guión.
  3. Opciones largas de GNU, precedidas por dos guiones.

De esto, sabemos que auxes un conjunto de opciones BSD (agrupadas) a, uy x, lo que las hace un poco más fáciles de buscar.

  • ay xcontrolan qué procesos se seleccionan y se usan explícitamente juntos para seleccionar todos los procesos.

  • u salidas que utilizan el formato "orientado al usuario", que proporciona más columnas, incluida la identificación del usuario y el uso de CPU / memoria.

mwfearnley
fuente
Un corolario de esto es que si desea que el "ps aux" salida de estilo para un proceso, entonces se puede conseguir dejando fuera ay x, y sólo haciendo ps u $pid.
mwfearnley