Como classificar a saída ps por hora de início do processo?

66

Existe uma maneira de classificar a saída ps pela hora de início do processo, para que as mais novas estejam na parte superior ou inferior?

No Linux?

No SysV5?

No Mac?

Dean Smith
fonte

Respostas:

87

Isso deve funcionar no Linux e SysV5

ps -ef --sort=start_time
Sekenre
fonte
Isso funciona exatamente como solicitado, obrigado. Depois de mais de escavação não estou certo de que isso é possível no Mac OS sem um pouco de awk
Dean Smith
11
start_time funcionou. Comecei não. RHEL
Felipe Alvarez,
11
como reverter a ordem?
Phu Nguyen
2
@PhuNguyen chegou um pouco atrasado para a festa, mas talvez alguém tenha uma utilidade para isso. Você pode reverter a ordem canalizando a saída tac.
Paul
11
@Stephane tente isso:watch "ps -ef --sort=start_time | grep -v kworker | tail"
Sekenre
11

Linux:

$ ps aux --sort=lstart 

OSX:

$ ps aux -O started
rkthkr
fonte
2
Receio que nenhum desses tipos no horário de início. Ele exibe a hora de início, mas não classifica.
Dean Smith
2
A diferença entre lstart e start_time também me chamou a atenção - lstartfornece um carimbo de data / hora completo, mas não pode ser usado como uma chave de classificação. start_timefornece a coluna "hora das últimas 24 horas, data diferente" e pode ser usada como uma chave de classificação. Ambos dão 'INICIADO' no cabeçalho.
LHMathies
tempo na última hora: se um processo foi lançado ontem, mais tarde que hoje, aparecerá após o processo de hoje ... não pode ser usado por classificação, a menos que um pouco de "awk" mude isso
Olivier Dulac
@ OlivierDulac: não para mim. 15/12 15:40aparece antes 16/12 15:39, assim como 13:39aparece antes 15:38.
Gauthier
11
Comecei não funcionou para mim. start_time fez.
Felipe Alvarez
5

Juntamente com as ótimas respostas acima, às vezes eu só quero ver os 20 principais infratores por processos classificados em ordem decrescente por tempo,% de CPU e uso de memória.

Para isso eu uso:

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

Isso seria em uma plataforma CentOS, embora eu tenha desfrutado dos mesmos resultados no Fedora também.

Ah, e para sorrisos, às vezes eu quero remover um conjunto de processos, então simplesmente uso uma variante acima que inclui um pouco da ação grep -v, como:

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

fonte
--sortde psnão funciona para mim. Confiando na concha sort. +1
kellogs
3

Ainda não posso comentar, mas para responder à pergunta sobre como reverter a ordem de uma ordem do tempo, basta colocar um sinal de menos ( -) na frente do campo.
Exemplo:ps -elf --sort=-start_time

Barry S
fonte
2

Ou tente 'ls', pois permite formatos de hora fáceis de classificar e mais fáceis de usar.

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

Mostra a data / hora na época, os procs mais recentes na parte superior.

Jim Black
fonte
isso só mostra os PIDs
Elig
0

Tente o comando simples:

ps | sort -k7 -n

-k7para a coluna da hora e -npara numérico.

Exemplo

Khushboo Goyal
fonte