Como "tempo de atividade" tem vários significados, eis um comando útil.
ps -eo pid,comm,lstart,etime,time,args
Este comando lista todos os processos com várias colunas relacionadas ao tempo. Possui as seguintes colunas:
PID COMMAND STARTED ELAPSED TIME COMMAND
PID
= ID do processo
primeiro COMMAND
= apenas o nome do comando sem opções e sem argumentos
STARTED
= o tempo absoluto em que o processo foi iniciado
ELAPSED
= tempo decorrido desde o início do processo ( hora do relógio da parede ), formato [[dd-] hh:] mm: ss
TIME
= cumulativo Tempo da CPU, "[dd-] hh: mm: ss" formato
segundo COMMAND
= novamente o comando, desta vez com todas as opções e argumentos fornecidos
etimes
me - tempo decorrido em segundos - por isso é de leitura ópticaSe você tiver uma versão limitada da
ps
encontradabusybox
, poderá obter a hora de início do processo observando o registro de data e hora de/proc/<PID>
. Por exemplo, se o pid que você quer ver é 55 ...... e depois compare com a data atual ...
fonte
Eu acho que você pode simplesmente executar:
1234 sendo o ID do processo.
exemplo, com dois processos iniciados na mesma hora, minuto segundos, mas não nos mesmos milissegundos:
fonte
Uma coisa tão simples não é respondida corretamente após 5 anos?
Eu não acho que você pode obter com precisão milissegundos. por exemplo. se você vir
man procfs
e ver/proc/$$/stat
qual campo 22 é o horário de início, que está em "tiques do relógio", você teria algo mais preciso, mas os tiques do relógio não estão indo a uma taxa perfeitamente constante (em relação ao 'relógio de parede') e estar fora ... dormindo e certas coisas (ntpd eu acho) compensar isso. Por exemplo, em uma máquina executando o ntpd, com 8 dias de atividade e nunca dormiu,dmesg -T
tem o mesmo problema (eu acho ...), e você pode vê-lo aqui:Aqui estão alguns segundos:
fonte
sim, coisas muito velhas e ainda muito difíceis. Eu tentei com o método "stat" proposto acima, mas e se eu tivesse "tocado" - no dir dir de PID ontem? Isso significa que meu processo de um ano é mostrado com o carimbo de hora de ontem. Nah, não é o que eu preciso :(
Nos mais novos, é simples:
tão simples como isso. O tempo está presente em segundos. Faça o que for necessário. Com algumas caixas mais antigas, a situação é mais difícil, já que não há épocas. Pode-se confiar em:
que parece um pouco "estranho", pois está no formato dd-hh: mm: ss. Não é adequado para cálculos adicionais. Eu teria preferido em segundos, portanto, usei este:
fonte
pidof java
=> identificação do processo para o processo javaetimes=
=> tempo em segundos e '=' é remover o cabeçalhofonte