[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: