¿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
Sekenre
fuente
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
rkthkr
fuente
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

fuente
--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

Barry S
fuente
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.

Jim Black
fuente
esto solo muestra los pids
eleg
0

Prueba un comando simple:

ps | sort -k7 -n

-k7para la columna de tiempo y -npara numérico.

Ejemplo

Khushboo Goyal
fuente