Programm Status abfragen
-
Man kann mit `ps` Prozesssinformationen abfragen.
Mir geht es um die Information Status [Run | Sleep | Swap .....$ ps -ax .... Status [S]
Jetzt hat man hier ein Problem. Sobald mein Programm diese Informationen abfragt ist der Status meines Programms [R], alle anderen natürlich [S] weil logischerweise mein Programm gerade am Zug ist.
Ich lese die Informationen aus /proc/PID/status (stat - statm) aus.
Ich würde gerne aus einem bestimmten Zeitraum diese Statusinformation haben.Beispiel: In den letzten 2 Minuten hatte PID A x-mal Status [R oder S], PID B x-mal ...........
Wo kann ich diese Infos auslesen? Geht das überhaupt?
Das Programm ps oder top lesen ja auch /proc aus. Doch ist das Status Flag ja für das eigene Programm zum Zeitpunkt der Anzeige immer [R], logischerweise.
Vielleicht gibt es ja so eine Art Statistik wo das festgehalten wird.In der Hoffnung das mein Problem gut genug beschrieben ist Bedanke ich mich im voraus.
-
Im Zweifelsfall kannst du ja einen externen Prozess dafür nehmen. (btw. /proc/self ist der eigene Prozess)
-
Nur leider werde ich mein Problem damit nicht lösen können, zumindest wüsste ich nicht wie.
Sobald mein Programm arbeitet (Abfrage), ist dessen Statusflag [R]un, die von den anderen Programmen [S]leep, zur Zeit der Abfrage.
Ich bräuchte eine Liste der Stati (?Mehrzahl?) von verschiedenen Programmen in einem bestimmten Zeitraum.
Ich habe mir die <linux/sched.h> mal angeschaut, klingt am logischsten für mich, finde aber nichts passendes.Bin mit meinem Latein am Ende.