X-Received: by 2002:adf:d201:: with SMTP id j1mr1574661wrh.212.1610413350275; Mon, 11 Jan 2021 17:02:30 -0800 (PST) Path: ...!news-out.google.com!nntp.google.com!proxad.net!feeder1-2.proxad.net!212.27.60.64.MISMATCH!cleanfeed3-b.proxad.net!nnrp4-2.free.fr!not-for-mail Subject: =?UTF-8?Q?Re=3a_Fichier_binaire_d=27un_daemon_writable_ssi_le_damon?= =?UTF-8?Q?_est_stopp=c3=a9?= Newsgroups: fr.comp.os.bsd References: <5ffca81a$0$6449$426a74cc@news.free.fr> From: Francois Lafont Date: Tue, 12 Jan 2021 02:02:30 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 In-Reply-To: Lines: 53 Message-ID: <5ffcf526$0$6458$426a74cc@news.free.fr> Organization: Guest of ProXad - France NNTP-Posting-Date: 12 Jan 2021 02:02:30 CET NNTP-Posting-Host: 86.247.215.236 X-Trace: 1610413350 news-2.free.fr 6458 86.247.215.236:57040 X-Complaints-To: abuse@proxad.net Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: fr Content-Transfer-Encoding: 8bit Bytes: 3119 Bonsoir, On 1/11/21 10:55 PM, Christian Weisgerber wrote: > La commande test(1), alias « [ », invoque l'appel système access(2), > qui retourne l'erreur ETXTBSY si le fichier exécutable est en état > d'utilisation. > > C'est à cause de la mémoire virtuelle paginée. Seulement les morceaux > nécessaires d'un fichier exécutable sont transferés en mémoire vive > lorsque c'est exigé (« on-demand paging »). Évidemment, ça finirait > mal si on surécrivait le fichier et après chargeait un autre morceau. > > C'est comme ça depuis l'introduction de la mémoire virtuelle paginée > au monde Unix, il y a environ une quarantaine d'années. Merci beaucoup pour ta réponse Christian. Et ben... j'ai appris quelque chose. Ok, manifestement ce n'est pas récent mais pour moi qui vient du monde Linux, c'est la première fois que je rencontre ça. Par exemple sur une Ubuntu 18.04, un noyau Linux 4.15 donc, je n'ai pas le même comportement. Sur cette Ubuntu, j'ai un daemon Apache2 qui tourne via le binaire /usr/sbin/apache2. Comme tu peux voir ci-dessous, je n'ai pas le même comportement qu'avec FreeBSD : ------------------------------------------------------------- ~# whoami root ~# b=/usr/sbin/apache2 ~# namei -mox "$b" f: /usr/sbin/apache2 Drwxr-xr-x root root / drwxr-xr-x root root usr drwxr-xr-x root root sbin -rwxr-xr-x root root apache2 ~# echo "import os; x = os.access('$b', os.W_OK); print(x)" | python True ~# [ -w "$b" ] && echo WRITABLE WRITABLE ------------------------------------------------------------- Du coup, le comportement que j'ai décrit dans mon premier message n'est-il pas spécifique à (Free)BSD ? Ou alors, inversement, le comportement ci-dessus n'est-il pas spécifique à Linux ? Pourquoi les deux OS se comportent-ils différemment sur ce point ? -- François Lafont