Come ordinare l'output ps in base all'ora di inizio del processo?


Risposte:


87

Questo dovrebbe funzionare su Linux e SysV5

ps -ef --sort=start_time

Funziona esattamente come richiesto, grazie. Dopo ulteriori ricerche non sono sicuro che ciò sia possibile su Mac OS senza un po 'di imbarazzo
Dean Smith,

1
start_time ha funzionato. Iniziò a non farlo. RHEL
Felipe Alvarez,

1
come invertire l'ordine?
Phu Nguyen,

2
@PhuNguyen un po 'in ritardo alla festa, ma forse qualcun altro ha un utile per questo. È possibile invertire l'ordine eseguendo il piping dell'output tac.
Paolo,

1
@Stephane prova questo:watch "ps -ef --sort=start_time | grep -v kworker | tail"
Sekenre il

11

Linux:

$ ps aux --sort=lstart 

OSX:

$ ps aux -O started

2
Non temo nessuno di questi tipi per ora di inizio. Visualizza l'ora di inizio, ma non ordina.
Dean Smith,

2
Anche la differenza tra lstart e start_time mi ha colto di sorpresa: lstartfornisce un timestamp completo, ma non può essere usato come chiave di ordinamento. start_timefornisce la consueta colonna "ora nelle ultime 24 ore, data altrimenti" e può essere utilizzata come chiave di ordinamento. Entrambi indicano "INIZIO" nell'intestazione.
LHMathies,

ora nell'ultima ora: se un processo è stato avviato ieri in un momento successivo a quello di oggi, apparirà dopo il processo di oggi ... non può essere utilizzato per ordinamento, a meno che un po 'di "imbarazzo" lo cambi
Olivier Dulac

@OlivierDulac: non per me. 15/12 15:40appare prima 16/12 15:39, proprio come 13:39appare prima 15:38.
Gauthier,

1
Iniziò a non funzionare per me. start_time ha fatto.
Felipe Alvarez,

5

Insieme alle grandi risposte di cui sopra, a volte voglio solo vedere i primi 20 trasgressori per processo ordinati in ordine decrescente di tempo, percentuale di CPU e utilizzo della memoria.

Per questo uso:

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

Questo sarebbe su una piattaforma CentOS, anche se mi sono goduto gli stessi risultati anche su Fedora.

Oh, e per i sorrisi, a volte voglio rimuovere un insieme di processi, quindi uso semplicemente una variante di cui sopra che include un po 'di azione grep -v, come:

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

--sortdi psnon funziona per me. Basandosi sul guscio sort. +1
kellogs

3

Non posso ancora commentare, ma per rispondere alla domanda su come invertire l'ordine di un ordinamento temporale, basta mettere un segno meno ( -) davanti al campo.
Esempio:ps -elf --sort=-start_time


2

Oppure prova 'ls', in quanto consente formati di ora che sono facili da ordinare e più facili da usare.

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

Emette la data / ora in epoca, i più recenti proc in alto.


questo mostra solo i pids
ammissibili l'

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.