É possível obter a hora de início de um processo em execução antigo? Parece que ps
informará a data (não a hora) se não foi iniciada hoje e apenas o ano se não foi iniciada este ano. A precisão é perdida para sempre em processos antigos?
250
ps -p <pid> -o lstart
? Parece que funciona, mas não sei por que não é a resposta óbvia imediata pelas muitas vezes em que essa pergunta surge.ps -p <pid> -o lstart=
para evitar linhas adicionais (cabeçalho) a serem impressas.ps -p <pid> -o lstart
? Talvez o fato de não haverlstart
na edição de 2004 nem na edição de 2013 do padrão POSIX 1003.1?Respostas:
Você pode especificar um formatador e usar
lstart
, como este comando:O comando acima produzirá todos os processos, com formatadores para obter o PID, a execução do comando e a data e hora iniciadas.
Exemplo (da linha de comando do Debian / Jessie)
Você pode ler
ps
a página de manual ou verificar a página do Opengroup para outros formatadores.fonte
etime
é o tempo decorrido desde que o processo foi iniciado.ps axo pid,cmd,lstart
também funcionalstart
tempo pode mudar, osstat
métodos abaixo são mais seguros - unix.stackexchange.com/questions/274610/… .O comando ps (pelo menos a versão procps usada por muitas distribuições Linux) possui vários campos de formato relacionados à hora de início do processo, incluindo os
lstart
que sempre fornecem a data e a hora completas do processo:Para uma discussão sobre como as informações são publicadas no sistema de arquivos / proc, consulte /unix/7870/how-to-check-how-long-a-process-has-been-running
(Na minha experiência no Linux, o registro de data e hora nos diretórios / proc / parece estar relacionado a um momento em que o diretório virtual foi acessado recentemente, em vez da hora de início dos processos:
Observe que, neste caso, executei um comando "ps -p 1" por volta das 16:50, depois gerei um novo shell bash e, em seguida, executei o comando "ps -p 1 -p $$" dentro desse shell logo depois ... .)
fonte
e
(padrãops
de sintaxe) ouax
argumento (sintaxe BSD) para o comando ps: ou seja,ps -ewo pid,lstart,cmd
oups -axwo pid,lstart,cmd
Como acompanhamento da resposta de Adam Matan , o
/proc/<pid>
carimbo de data / hora do diretório não é necessariamente diretamente útil, mas você pode usarpara obter a hora de início do relógio desde a inicialização do sistema. 1
Esta é uma unidade um pouco complicada de usar; consulte também converter jiffies em segundos para obter detalhes.
Isso deve fornecer segundos para os quais você pode passar
strftime()
para obter um carimbo de data / hora (legível por humanos ou não).Atualizado com algumas correções de Stephane Chazelas nos comentários; obrigado como sempre!
Se você só tem Mawk, talvez tente
1 homem proc ; procure o horário de início .
fonte
strftime()
esystime()
não está presentemawk
, o que é o padrãoawk
nas minhas imagens do Debian 8 VPS, então eu posso apenas assumir que elas são específicas paragawk
o dialeto do.Por exemplo, o PID do meu Google Chrome é 11583:
fonte
ps
que indicainvalid option
todas as opções mencionadas por outras respostas.grep
? Por que nãols -ldh /proc/$pid
? Ou melhor aindadate -r /proc/$pid
?fonte
fonte