Le Thu, 18 Sep 2014 16:59:39 +0200 "Sylvain L. Sauvage" <[email protected]> a écrit:
> Le jeudi 18 septembre 2014, 16:06:28 Serge SMEESTERS a écrit : > >[… find /proc | sed | sh …] > > Et c'est curieux, alors que je cherchais à trouver les PID, > > elles ont finis par disparaître... > > Serions-nous à ce point surveillé :) > > Ce qui serait bien avant d’exécuter (et d’« optimiser ») une > commande donnée, ce serait d’essayer de la comprendre et, aussi, > d’en comprendre les limites. > > Techniquement, la commande de François (qui doit être exécutée > depuis /proc) : > — liste tous les fichiers cmdline (for + ls) ; > — récupère le pid et crée une commande ps avec celui-ci (sed) ; > — exécute ces commandes. [..] > Déjà, effectivement, le seq n’est pas des plus rapides (c’est > même très très lent un seq). Le find est sans doute un peu > mieux. Un simple > cd /proc && ls -d [0-9]* > donne directement la liste des pids des processus en cours, sans > la lenteur d’un seq (ou d’un find). > D’ailleurs, on peut éviter le sed et le sh final : > cd /proc && ls -d [0-9]* | while read i; ps -p $i >/dev/null > || echo $i ; done Suckit utilise une technique créant un processus créant un processus caché dans /proc n'apparaissant pas dans un ls ou un find mais existant. En clair ls /proc/123 donne que dalle mais ls /proc/123/cmdline donne un résultat. ps se base sur les processus apparaissant dans /proc. Donc un processus PID tel que /proc/$PID/cmdline existe mais non montré par ps -p $PID est caché. C'est le fonctionnement de Suckit. Le $(seq 1 65535) est donc indispensable. Voir le paquet cacheproc sur mon dépot deb http://boisson.homeip.net/depot wheezy divers (wheezy, squeeze, etc jusqu'à sarge) Suckit cache aussi les fichiers d'extensions .sk?? par exemple .sk12 (à vérifier, c'est de mémoire) Maintenant le fonctionnement de Suckit a peut être changer. Il existe d'autres façons de cacher des processus. En regardant mieux, il existe unhide qui liste les processus cachés. François Boisson -- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.org/fr/FrenchLists Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe" vers [email protected] En cas de soucis, contactez EN ANGLAIS [email protected] Archive: https://lists.debian.org/[email protected]

