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

Répondre à