Ich verwende einen psBefehl als Teil einer Übung, um Prozesse zu identifizieren, die länger als ein bestimmter Schwellenwert ausgeführt werden.
Ich verwende die folgende Vorlage, um die verstrichene Zeit für einen Know-Prozess-Befehl abzurufen:
ps -eo etime,command | grep <something to identify a process> | grep -v grep | awk '{print $1}'
Ich stelle bei kurz laufenden Prozessen fest, dass der Wert für etime (verstrichene Zeit) das Format annimmt, minutes:secondsund anhand dessen kann ich leicht feststellen, wie lange ein Prozess ausgeführt wurde.
Bei sehr langen Prozessen (Tage) verstehe ich das Format nicht.
Ich habe einen MySQL-Serverprozess, der htop126 Stunden lang ausgeführt wird.
Das Ausführen ps -eo etime,command | grep mysql | grep -v grep | awk '{print $1}'gibt mir einen Wert von 9-03:35:32.
Meine beste Vermutung ist, dass dies 9 etwas, 3 Stunden, 35 Minuten, 32 Sekunden bedeutet. Ich kann nicht herausfinden, was die Einheiten für die 9 sind.
Der fragliche Prozess lief 126 Stunden, ungefähr 5,25 Tage. Dies deutet darauf hin, dass die 9 in der obigen Ausgabe keine Tage darstellt. Sie können auch keine halben Tage sein, da (9 * 12) Stunden + 3 Stunden + 35 Minuten + 32 Sekunden weniger als 5 Tage sind.
Wie interpretiere ich den Wert der verstrichenen Zeit, den ich für lang laufende Prozesse sehe? Welche Einheiten begleiten die 9 in der obigen Ausgabe?
etimesstatt etimeund die Ergebnisse zu vergleichen.
pszeigt das eine oder andere an, abhängig von den Optionen, die Sie übergeben.