GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Linux – Ausgabe von Ps Lstart geändert?

Ich habe ein Programm gestartet und die Ausgabe von ps -p PID -o lstart= geschrieben in eine Datei, etwa so:

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

Aber wenn ich ps erneut ausführe später bekomme ich ein etwas anderes Ergebnis:

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

Ich hatte den Eindruck, dass lstart= würde die Startzeit eines bestimmten Prozesses drucken. Warum erhalte ich eine andere Startzeit, wenn ich ps erneut aufrufe ?

Akzeptierte Antwort:

Ich hatte vermutet (aber nicht replizieren können), dass das Problem irgendwie mit einer exec zusammenhängt Aufruf oder etwas Ähnliches, das den laufenden Prozess ersetzte, die gleiche PID beibehielt, aber die Startzeit zurücksetzte. Es stellt sich heraus, dass die Erklärung viel einfacher ist (und leider habe ich in der ursprünglichen Frage nicht genügend Details angegeben).

Wie in diesem Followup beschrieben, änderte ein NTP-Update meine Systemuhr zwischen den ps Anrufe. Anscheinend lstart respektiert Uhraktualisierungen (was sinnvoll ist, mich aber dennoch etwas überrascht hat), was bedeutet, dass Sie sich nicht auf die Ausgabe von lstart verlassen können um über die Lebensdauer eines einzelnen Prozesses konsistent zu bleiben.


Linux
  1. So weisen Sie einer Variablen die Ausgabe eines Linux-Befehls zu

  2. So speichern Sie die Befehlsausgabe in einer Datei unter Linux

  3. Linux – Kopfhörer funktioniert nicht Linux Mint 18?

  4. Beispiele für Linux-Zeitbefehle

  5. Linux-Konsolenausgabe an eine Protokolldatei anhängen?

iftop-Befehl unter Linux

htop-Tool unter Linux

lsblk-Befehl unter Linux

Was ist „/dev/null 2&1“ unter Linux

Eingabe-Ausgabe-Umleitung unter Linux erklärt

Beispiele für Linux-Echo-Befehle