Linux - Wie sehe ich, wann ein Prozess gestartet wurde?

23

Wie kann ich sehen, wann ein Prozess gestartet wurde, vorausgesetzt, ich kenne die PID. (Unter Linux)

Rory
quelle

Antworten:

30

Wenn Sie nur die Startzeit wünschen, können Sie das Feld auswählen und die Kopfzeile unterdrücken, indem Sie dies tun:

 ps -p YOURPID -o lstart=

Die Ausgabe sieht folgendermaßen aus:

 Mon Dec 14 17:17:16 2009

Das ist das ctime(3)Format und Sie können es analysieren, um die relevanten Teile aufzuteilen.

Andere Startfelder wie start, stime, bsdstartund start_timeAlter , die Zeit (nach 24 Stunden nur das Datum angezeigt wird , zum Beispiel).

Sie können sie jedoch direkt für kürzlich gestartete Prozesse verwenden, ohne sie weiter analysieren zu müssen:

ps -p YOURPID -o stime=

was so etwas ausgeben würde:

09:26
Bis auf weiteres angehalten.
quelle
Dies funktioniert auch auf einem Mac!
Brad Parks
8

"ps -f" - steht auf den Manpages

Chopper3
quelle
2
Und um die bekannte ps -f -p yourpid
PID
Tatsächlich funktioniert dies, wenn der Prozess am selben Tag gestartet wurde, aber wenn er an einem anderen Tag gestartet wurde, erhalten Sie nur den Tag, aber nicht die Uhrzeit, wie sie auf @DennisWilliamson answer
alphamikevictor am
8

awk '{print $22}' /proc/$pid/stat - gibt Ihnen die Startzeit in Sekundenschnelle nach dem Booten

James
quelle
Schön obskure Antwort!
wzzrd
Rätsel mir das. Ein System mit einer Betriebszeit von '17: 57 'hat einen Prozess mit einer Startzeit von' 727975 '. Sieht so aus, als hätte der Prozess in acht Tagen begonnen?
Scott Pack
1
Es ist tatsächlich in Sekundenschnelle (100 / Sek.)
MarkR
1
Viel zu dunkel! Außerdem müssen Sie jetzt die Startzeit nachschlagen und rechnen, um die Sekunden in Sekunden umzuwandeln und den Versatz zu berechnen, um die Uhrzeit zu ermitteln. Einfach, aber zu viele Schritte. Siehe die Antwort von Chopper3.
Bis auf weiteres angehalten.
Die Anzahl der Sprünge pro Sekunde wird in der Systemvariablen HZ gespeichert. Es ist meistens 100. Um es in der Shell zu berechnen, könnten Sie dies verwenden: stackoverflow.com/a/44524937/1950345
reichhart
0

Wenn openvpnauf dem Host ein einzelner Prozess mit einem bestimmten Namen (z. B. ) vorhanden ist, haben Sie folgende Möglichkeiten:

ps -p `pgrep openvpn` -o lstart=
aperezbios
quelle
-1

Auf eine Weise können Sie ps -f | grep, wie Sie sagten, die PID auf andere Weise, die Sie auch in der Spitze weise können

Rajat
quelle