2016-12-08 1 views
1

J'essaye d'écrire un programme pour contrôler les processus qui s'exécutent sur le système Linux. Je suis intéressé à connaître la mémoire et la consommation CPU des processus et démarrer, tuer et mettre en pause les processus sur le système.Processus d'exécution de la liste Ada sous Linux

La bibliothèque la plus proche que je peux penser est le paquet GNAT.Os_Lib, comment puis-je faire une telle surveillance dans Ada?

Toute direction à cet égard contribuerait

Répondre

1

POSIX.Signals.Send_Signal est probablement la bonne procédure d'appel, lorsque vous voulez tuer ou mettre en pause des processus.

Je ne suis pas au courant des bibliothèques Ada publiées pour surveiller les processus en cours et l'utilisation de leurs ressources. Je voudrais regarder dans la mise en œuvre de ps pour Linux, et importer les fonctions C pertinentes dans un paquet Ada.

+0

Jacob, ne serait pas Florist faire l'affaire, au moins pour la consommation du processeur, avec POSIX.Process_Times et? Désolé si je me trompe, je n'ai jamais utilisé ça mais c'était la première fois que je réfléchissais à propos des processus. –

+0

Cela ne fonctionne que de manière interne dans le processus. J'ai lu la question comme étant d'interroger le système d'exploitation sur les ** autres ** processus. –

4

Je pense que sous Linux, vous devez regarder le contenu du répertoire/proc. Rien de spécifique à Ada ici, en utilisant GNAT.Directory_Operations ou Ada.Directories devrait fonctionner pour lire le contenu du répertoire.