Le 2 octobre 2008 20:25, Thomas Preud'homme <[EMAIL PROTECTED]> a écrit :
> Le jeudi 2 octobre 2008, vous avez écrit : > > > Que donne un pstree ? Quel est le père de ces processus ? S'il > > > s'agit de pureftpd je suppose que celui-ci oublie de faire des wait > > > et le tuer puis le relancer devrait suffire. Si init ou ton shell > > > est le père de ces processus alors c'est étrange. > > > > J'avais bien sur arreté le demon pureftpd principal mais celui-ci > > n'est pas détaché des fils créé à chaque connexion. Donc lui etait > > correctement stopé. > > Du coup les fils étaient rattaché à quel père en définitive ? > Je reprend : Pure-ftpd lancé seul ça donne ça : *# ps -edf | grep pure root 1678 1 0 19:55 ? 00:00:00 pure-ftpd (SERVER)* Avec une connection active mais idle ca donne ca : *#ps -edf | grep pure root 1678 1 0 19:55 ? 00:00:00 pure-ftpd (SERVER) torus 4578 1678 0 20:45 ? 00:00:00 pure-ftpd (IDLE) root 4579 4578 0 20:45 ? 00:00:00 pure-ftpd (PRIV)* soit deux fils dont un qui est IDLE et attaché au SERVER et PRIV qui est attaché au IDLE donc : *# pstree 1678 pure-ftpd-ldap-───pure-ftpd-ldap-───pure-ftpd-ldap- * si j'arrête le démon principal la connexion reste active mais le fils IDLE se détache de SERVER : *# /etc/init.d/pure-ftpd-ldap stop Stopping ftp server: pure-ftpd. # ps -edf | grep pure* *torus 4578 1 0 20:45 ? 00:00:00 pure-ftpd (IDLE) root 4579 4578 0 20:45 ? 00:00:00 pure-ftpd (PRIV) *En l'occurrence, dans mon cas j'avais arreté le SERVER mais je ne pouvais pas tuer l'IDLE . Quand j'ai voulu tuer PRIV par il est resté en zombie. ------------ Mes users sont bien chrooté oui mais dans mes options j'ai dit a pureftpd de suivre les liens symbolique : ici en gros j'avais : /mnt/ftpmouted << mon repertoire sur lequel est monté un ftp /home/user/ << la home de mon user et lui a ajouté /home/user/lien -> /mnt/ftpmounted (il l'a fait en ligne de commande parce que je lui avais donné l'acces ssh, normalement j'ai confiance en lui) > > > > Je viens de réussir a les faire disparaitre mais c'est étrange, en > > fait mon user avait fait un lien vers un répertoire monté sur un > > autre ftp avec curlftpd et il avait tout cassé. > > mmmh pureftp n'est pas censé s'exécuter dans un chroot ? Enfin je veux > dire normalement il ne peut pas servir un fichier en dehors des > répertoires qu'il gère et donc ce lien n'aurait pas dû poser problème > (juste être inaccessible). Peut-être un bug à signaler. > > > En gros c'est fuse qui empechait mes process de s'arreter. > > C'est étrange, le programme devrait pouvoir être arrêté quelque soient > les modules dont il a besoin en définitive. Je ne connais pas bien > l'architecture de fuse mais la partie noyau n'est clairement pas > concernée et la partie userspace s'exécute forcément pour le compte > d'un processus. De deux choses l'une ou bien il s'exécute pour un > processus tiers auquel cas il n'entre pas en compte, ou bien il > s'exécute pour le processus pureftp et il peut être tué avec un kill -9 > (un programme ne peut intercepter un kill -9. Un kill-9 est géré par le > noyau et aucun programme ne peut s'y soustraire). > > Par contre ce qui est fort possible c'est que ton kill -9 ait tué > correctement les processus fils comme prévu mais que init ait mis un > certains temps avant de faire le wait qui libère les processus zombie. > > > > > Par contre, le kill -9 ne faisait rien.... fuse avait la priorité > > parce que c'est un module ? > > Le kill -9 a marché vu que tes processus sont devenus zombies. Un > processus zombie c'est un processus qui n'existe plus mais dont on > conserve l'état de terminaison pour que son parent le récupère. Pour > qu'un processus disparaisse complètement il faut que le père récupère > cet état et libère ainsi l'espace où est stocké l'état de terminaison. > > > > > Merci quand même. > > De rien pour le coup :) > > Cordialement, > > Thomas Preud'homme > > -- > Why Debian : http://www.debian.org/intro/why_debian > -- Breizh da viken : www.pointbzh.com

