2016-12-08 2 views
1

Ich versuche, ein Programm zu schreiben, um die Prozesse zu steuern, die auf dem Linux-System laufen. Ich bin daran interessiert, den Speicher- und CPU-Verbrauch der Prozesse zu kennen und die Prozesse auf dem System zu starten, zu beenden und anzuhalten.Ada Liste laufender Prozess in Linux

Die nächste Bibliothek, die ich mir vorstellen kann, ist GNAT.Os_Lib Paket, wie kann ich eine solche Überwachung in Ada tun?

Jede mögliche Richtung in dieser Hinsicht

hilft

Antwort

1

POSIX.Signals.Send_Signal wahrscheinlich das richtige Verfahren zu nennen, ist, wenn Sie Prozesse töten oder zu unterbrechen wollen.

Mir sind keine veröffentlichten Ada-Bibliotheken zur Überwachung laufender Prozesse und deren Ressourcennutzung bekannt. Ich würde die Implementierung von ps für Linux untersuchen und die relevanten C-Funktionen in ein Ada-Paket importieren.

+0

Jacob, würde Florist den Trick machen, zumindest für CPU-Verbrauch, mit POSIX.Process_Times und? Tut mir leid, wenn ich falsch liege, ich habe das nie benutzt, aber es war das erste Mal, über das ich nachdachte, als ich über Prozesse sprach. –

+0

Das funktioniert nur intern im Prozess. Ich habe die Frage gelesen, dass es darum geht, das Betriebssystem nach ** anderen ** Prozessen abzufragen. –

4

Ich denke, auf Linux müssen Sie den Inhalt des Verzeichnisses/proc ansehen. Nichts speziell für Ada hier, sollte mit GNAT.Directory_Operations oder Ada.Directories arbeiten, um den Inhalt des Verzeichnisses zu lesen.