unhide et machine chargée
Bonjour la liste,
Me disant qu'il serait temps d'être moderne, j'ai mis à jour un serveur de
etch vers lenny (on verra pour squeeze plus tard).
C'est un FitPC avec un processeur Geode à 500MHz, autrement dit pas une bête
de course.
Depuis longtemps, j'utilise en tache de fond un programme perso conçue avec
l'aide de cette liste
cf http://lists.debian.org/debian-user-french/2003/12/msg01427.html
pour la genèse de ce programme.
Depuis unhide est apparu. Je connais 3 méthodes pour trouver des processus
cachés:
Méthode 1 (initiale et qu'utilise cacheproc):
Pour i de 1 à 65535 test de l'existence /proc/$i et vérification pour savoir
si /proc/$i est visible.
Méthode 2:
Pour i allant de 1 à 65536, création d'un processus par fork et récupération
du PID, celui ci est donc un numéro libre. Tous les $PID non obtenus sont des
processus qui doivent exister. Test de cette existence.
Méthode 3:
Idem mais en utilisant les threads.
La deuxième et la troisième méthode construisent une table puis vérifient
l'existence des processus. Tout processus terminant entre temps fait un faux
positif.
Y-a-t-il des différences entre ces 3 méthodes dans les résultats attendus
(dans un cadre idéal)?
Sur ma machine (peu puissante), j'ai parfois une centaine de faux positif par
unhide. J'ai donc patché le source pour que 2 tables de processus suspects soit
gérées, un processus fugitif figurera dans une table mais pas dans l'autre.
Le source est disponible ici
http://boisson.homeip.net/unhide-linux26.c
François Boisson
PS: Le risque existe également pour cacheproc de trouver des faux positifs, et
le passage à lenny a multiplié l'existence de ceux ci (je pense à cause
de la généralisation de l'utilisation des threads). Une version modifiée de
cacheproc améliore les choses en diminuant le nombre de faux positifs.
Reply to: