Saída do psststart alterada

1

Eu iniciei um programa e escrevi a saída de ps -p PID -o lstart= para um arquivo, assim:

$ long_running_command &
[1] 4562
$ ps -p $! -o lstart= > start_time
$ cat start_time
Wed Apr  6 06:16:31 2016

Mas quando eu reproduzo ps depois, obtenho um resultado ligeiramente diferente:

$ ps -p 4562 -o lstart=
Wed Apr  6 06:16:53 2016

Tive a impressão de que lstart= imprimia a hora de início de um determinado processo . Por que estou recebendo uma hora de início diferente quando eu chamo novamente o ps ?

    
por dimo414 06.04.2016 / 08:31

1 resposta

0

Eu suspeitei (mas não consegui replicar) que o problema estava de alguma forma relacionado a uma chamada exec ou algo semelhante que estava substituindo o processo em execução, mantendo o mesmo PID, mas reiniciando a hora de início. Acontece que a explicação é muito mais simples (e infelizmente não incluí detalhes suficientes na pergunta original).

Conforme detalhado em este acompanhamento , uma atualização de NTP estava alterando o relógio do meu sistema entre as chamadas ps . Aparentemente, lstart respeita as atualizações do relógio (o que faz sentido, mas ainda me surpreende um pouco), o que significa que você não pode confiar na saída de lstart para permanecer consistente durante a vida útil de um único processo.

    
por 07.04.2016 / 01:52

Tags