GNU/Linux >> Znalost Linux >  >> Linux

Linux – výstup Ps Lstart změněn?

Spustil jsem program a napsal výstup ps -p PID -o lstart= do souboru, například takto:

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

Ale když znovu spustím ps později dostanu trochu jiný výsledek:

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

Měl jsem dojem, že lstart= vytiskne čas zahájení daného procesu. Proč se mi při opětovném volání na ps zobrazuje jiný čas zahájení ?

Přijatá odpověď:

Měl jsem podezření (ale nebyl jsem schopen replikovat), že problém nějak souvisí s exec volání nebo něco podobného, ​​co nahrazovalo běžící proces, zachovává stejné PID, ale resetuje čas zahájení. Ukázalo se, že vysvětlení je mnohem jednodušší (a bohužel jsem do původní otázky nezahrnul dost podrobností).

Jak je podrobně popsáno v tomto pokračování, aktualizace NTP měnila moje systémové hodiny mezi ps hovory. Zřejmě lstart respektuje aktualizace hodin (což dává smysl, ale přesto mě poněkud překvapilo), což znamená, že se nemůžete spolehnout na výstup lstart aby zůstaly konzistentní po celou dobu životnosti jednoho procesu.


Linux
  1. Jak přiřadit výstup příkazu Linux k proměnné

  2. Jak přesměrovat výstup do souboru a Stdout v Linuxu

  3. Přesměrování vstupu/výstupu v Linuxu/Unixu

  1. Jak uložit výstup příkazu do souboru v Linuxu

  2. Příklady příkazů času Linux

  3. Příklady příkazů tee v Linuxu

  1. Linux připojit výstup konzoly k souboru protokolu?

  2. Výstup příkazu Linux jako parametr jiného příkazu

  3. jak zkontrolovat verzi linux X11?