¿Cómo ordenar la salida ps por hora de inicio del proceso?


Respuestas:


87

Esto debería funcionar en Linux y SysV5

ps -ef --sort=start_time

Esto funciona exactamente como se solicitó, gracias. Después de más excavaciones, no estoy seguro de que esto sea posible en Mac OS sin un poco de awk
Dean Smith

1
start_time trabajado. Empecé no. RHEL
Felipe Alvarez

1
¿Cómo invertir el orden?
Phu Nguyen

2
@PhuNguyen llegó un poco tarde a la fiesta, pero tal vez alguien más lo use. Puede invertir el orden canalizando la salida tac.
Paul

1
@Stephane prueba esto:watch "ps -ef --sort=start_time | grep -v kworker | tail"
Sekenre

11

Linux:

$ ps aux --sort=lstart 

OSX:

$ ps aux -O started

2
No tengo miedo de ninguno de esos tipos por hora de inicio. Muestra la hora de inicio, pero no ordena.
Dean Smith

2
La diferencia entre lstart y start_time también me sorprendió, lstartda una marca de tiempo completa, pero no se puede usar como una clave de clasificación. start_timeproporciona la columna habitual "tiempo dentro de las últimas 24 horas, fecha de lo contrario", y se puede usar como una clave de clasificación. Ambos dan 'COMENZADO' en el encabezado.
LHMathies

hora dentro de la última hora: si un proceso se lanzó ayer a una hora posterior a la actual, aparecerá después del proceso de hoy ... no se puede usar por orden, a menos que un poco de "awk" cambie eso
Olivier Dulac

@ OlivierDulac: no es para mí. 15/12 15:40aparece antes 16/12 15:39, tal como 13:39aparece antes 15:38.
Gauthier

1
Comenzar no funcionó para mí. start_time lo hizo.
Felipe Alvarez

5

Junto con las excelentes respuestas anteriores, a veces solo quiero ver a los 20 principales delincuentes por proceso, ordenados por tiempo, porcentaje de CPU y uso de memoria.

Para eso uso:

ps auxww --sort=lstart | sort -r -k3,4 | head -20

Esto sería en una plataforma CentOS, aunque también he disfrutado de los mismos resultados en Fedora.

Ah, y para las sonrisas, a veces quiero eliminar un conjunto de procesos, así que simplemente uso una variante de lo anterior que incluye un poco de acción grep -v, como:

ps auxww --sort=lstart | sort -r -k3,4 | grep -v "sbin/httpd" | head -20

--sortde psno funciona para mí Confiando en la cáscara sort. +1
kellogs el

3

Todavía no puedo comentar, pero para responder la pregunta sobre cómo invertir el orden de un tipo de tiempo, simplemente coloque un signo menos ( -) delante del campo.
Ejemplo:ps -elf --sort=-start_time


2

O pruebe 'ls', ya que permite formatos de tiempo que son fáciles de clasificar y más fáciles de usar.

( cd /proc; ls -td --full-time --time-style=+%s [0123456789]*; )

Emite la fecha / hora en época, los procesos más nuevos en la parte superior.


esto solo muestra los pids
eleg

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.