localiza a hora de um processo no estado atual

3

Estou procurando uma maneira de mostrar a hora em que um determinado processo está em seu estado atual.
No momento, estou usando o comando:

ps -A -o uname,pid,state,etime,cmd | grep -e pbs | egrep -v "grep"

Que me dão uma saída assim:

root      1613 S  4-00:16:59 /usr/sbin/pbs_server
root     13508 S  1-18:13:37 /usr/sbin/pbs_sched
root     15344 R    01:09:51 /usr/sbin/pbs_mom

Isso me diz que pbs_mom está em execução por aproximadamente uma hora. No entanto, preciso saber por quanto tempo esse estado está em execução. Existe uma maneira de obter isso usando apenas a linha de comando? (já que estou pretendendo usá-lo em um script)

    
por user1834095 16.02.2015 / 11:43

1 resposta

1

Infelizmente, não é possível dizer quanto tempo o processo esteve no estado current (ou em que momento o estado do processo mudou por último) - o kernel não mantém esse tipo de histórico.

Imagine a grande quantidade de sobrecarga (em termos de tempo e memória do processador) para manter os timestamps de cada mudança de contexto (várias centenas a vários milhares por segundo).

    
por guntbert 06.06.2017 / 15:51