• [^] # Re: Et l'exemple qmail ?

    Posté par . En réponse à la dépêche Exec Shield: protection contre les débordements de tampons. Évalué à 7.

    > Un daemons est cense rester actif tout le temps.

    C'est le cas pour apache. Lors d'un logrotate, le processus père (pid : /var/run/httpd.pid) reçoit un SIGHUP. Ce processus père tue "en douceur" les fils (il laisse les requêtes se terminer (sauf les longues requêtes)) mais le processus père n'est pas tué !. Lorsque tous les fils sont morts, le père relance des fils. Les requêtes arrivées durant cette phase reste en attentes mais aucun client ne perçoit un service arrêté.

    Faire un process frère pour les logs n'est pas la panacée. Il faut mettre en place des moyens de communication entre le processus qui fait les logs et ces frères (ipc surement puisque ce sont des frères).

    De plus ta demande d'avoir des deamons qui tourne 24h/24 peut être très facilement faite en utilisant syslog(3). Par contre c'est plus coûteux en temps.

    > Reclamez l'implementation d'un syscall unlink() utilisant un fd et non plus un const char * (;p)

    Ça n'a aucun sens.
    exemple :
    $ mon_prog toto &
    $ ln toto titi # lien hard
    $ mv toto tata

    mon_prog crée et ouvre toto. 2 minutes après il faut un hypotétique unlink(fd). Que doit faire l'OS ? suprimer titi et tata ? Et si toto est un lien symbolique ? Et si fd est un pipe ?