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.


Anmelden zum Antworten