PS(1) | Manual del Programador de Linux | PS(1) |
ps - informa del estado de los procesos
ps [-] [lujsvmaxScewhrnu] [txx] [O[+|-]k1[[+|-]k2...]] [pids]
también existen tres opciones largas:
--sortX[+|-]key[,[+|-]key[,...]]
--help
--version
Se están desarrollando más opciones largas...
ps muestra una instantánea de los procesos actuales. Si quiere una actualización contínua, use top. Esta página de manual documenta (o por lo menos intenta documentar) la versión de ps basada en /proc.
Las opciones de la línea de comandos para esta versión de ps proceden de la versión BSD de ps, no de la versión System V.
Es recomendable que los argumentos de la línea de comandos no estén precedidos por un carácter `-', porque en un futuro, el `-' se utilizará para indicar argumentos del estándar Unix98, mientras que sin `-' indicará el modo actual ``BSD extendido''.
Por ahora, ps mostrará una advertencia (warning) si usa un `-' para una opción corta, pero aún así, todavía funcionará. Si tiene scripts shell que utilizan los argumentos de ps tipo BSD, preste atención a las advertencias y soluciónelas, o sus scripts dejarán de funcionar de forma correcta en un futuro. Si quiere deshabilitar estas advertencias, establezca la variable de entorno I_WANT_A_BROKEN_PS.
Existen además algunas ``opciones largas'' estilo GNU; véase más abajo.
Estas opciones están precedidas por un doble guión.
Nótese que los valores utilizados en la ordenación son valores internos que ps utiliza y no los valores `transformados' (`cooked') que aparecen en alguno de los campos de la salida. Si alguien, voluntariamente, quiere escribir alguna función especial de comparación para los valores transformados, ... ;-)
CORTA LARGA DESCRIPCIÓN
Este ps (basado en proc) lee los ficheros en el sistema de ficheros proc , montado en /proc. No necesita un kmem con suid ni privilegios para funcionar. No dé a este ps ningún permiso especial.
Necesitará actualizar el fichero /etc/psdatabase ejecutando /usr/sbin/psupdate para obtener una información comprensible del campo WCHAN. Debería hacer esto cada vez que compile un nuevo kernel. Debería también ejecutar 'ps' como root una vez y cada vez que los dispositivos tty en el directorio "/dev" cambien.
Como procps-1.00, ps/top leen System.map directamente si existe. El camino de búsqueda para la resolución de dirección a símbolo del kernel (address-to-symbol) es:
$PS_SYSTEM_MAP
/boot/System.map-`uname -r`
/boot/System.map
/lib/modules/`uname -r`/System.map
/etc/psdatabase
/boot/psdatabase-`uname -r`
/boot/psdatabase,
/lib/modules/`uname -r`/psdatabase
El miembro used_math de task_struct no se muestra, ya que crt0.s comprueba si existe emulación de coprocesador matemático. Esto hace que el flag math esté activado para todos los procesos, por lo que es inútil.
Los programas intercambiados a disco se mostrarán sin los argumentos de la línea de comando, y a no ser que se de la opción c , entre paréntesis.
%CPU muestra el porcentaje tiempo de cpu/tiempo real. No llegará al 100% a no ser que tengas suerte. Es el tiempo utilizado dividido por el tiempo que el proceso se ha estado ejecutando.
Los campos SIZE y RSS no cuentan las tablas de páginas y la task_struct del proceso; esto supone por lo menos 12k de memoria que siempre está residente. SIZE es el tamaño virtual del proceso (código+datos+pila).
Para conseguir la correspondencia entre número y nombre de dispositivo, ps mantiene un fichero llamado "/etc/psdevtab" (actualizado cada vez que "/dev" se actualiza y los permisos permitan la actualización). Si los permisos no lo permiten, cada invocación de ps requiere que se ejecute un stat(2) a cada fichero en el directorio "/dev". Si las entradas en "/dev" cambian a menudo en su sistema, debería ejecutar ps como root a menudo. Puede que añada un fichero accesorio bajo $HOME si se demanda por los usuarios.
ps fue escrito por primera vez por Branko Lankester <lankeste@fwi.uva.nl>. Michael K. Johnson <johnsonm@redhat.com> lo modificó de forma significativa para que utilizara el sistema de ficheros proc, cambiando algunas cosas en el proceso. Michael Shields <mjshield@nyx.cs.du.edu> añadió la posibilidad de dar listas de pids. Charles Blake <cblake@bbn.com> añadió ordenación multi-nivel, la librería estilo dirent, la base de datos de correspondencia de nombre de dispositivo a número, la búsqueda binaria aproximada en System.map, y mejoró el código y la documentación. David Mossberger-Tang escribió el soporte genérico BFD para psupdate. Michael K. Johnson <johnsonm@redhat.com> es el encargado del mantenimiento actualmente.
Por favor, envíe informes de los fallos a <procps-bugs@redhat.com>
3 Septiembre 1997 | Cohesive Systems |