ps lstart 的输出已更改

ps lstart 的输出已更改

我启动了一个程序并将输出写入ps -p PID -o lstart=一个文件,如下所示:

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

但当我稍后重新运行时,ps我得到的结果略有不同:

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

我的印象是lstart=会打印给定进程的开始时间。为什么我再次致电时得到的开始时间不同ps

答案1

我曾怀疑(但无法复制)该问题在某种程度上与exec调用或类似的替换正在运行的进程有关,保持相同的 PID 但重置开始时间。事实证明,解释要简单得多(不幸的是我没有在原来的问题中包含足够的细节)。

详见这个后续,NTP 更新正在更改ps通话之间的系统时钟。显然lstart尊重时钟更新(这是有道理的,但仍然让我有些惊讶),这意味着您不能依赖 的输出lstart在单个进程的生命周期内保持一致。

相关内容