On Mon, 2026-08-17 at 14:08 +0200, BERTRAND Joël wrote: > didier gaumet wrote: > > Bonjour, > > > > ça ne doit probablement pas influer sur ce problème mais, au > > hasard: > > peut-être essayer #!/bin/sh au lieu de #!/bin/bash dans ton script > > qui > > doit tourner sous dash plutôt que bash avec le user www-data?
Sous Linux c'est le noyau et l'appel système execve(2) voir https://man7.org/linux/man-pages/man2/execve.2.html qui traite ce #! Peut-être que l'utilisation de #!/bin/bash -x pourrait aider à comprendre le problème. On peut aussi ajouter temporairement dans un shell script des appels à la commande https://man7.org/linux/man-pages/man1/logger.1.html pour comprendre mieux. Les problèmes qui pourraient apparaître pourraient être: 1. un bogue dans le shell (et ni GNU bash, ni dash, ni zsh.org ne sont exempts de bogues) ou dans le script lançé par celui-ci. Le lecteur intéressé pourrait lire https://www.irif.fr/_media/rencontres/pps2018/regis-gianas.pdf Le lecteur intrépide pourrait étudier et améliorer le code source de son shell favori et l'analyser (voir frama-c.com et https://arxiv.org/abs/1109.0779 peut-être en dévelopant un greffon du compilateur GCC en logiciel libre: https://gcc.gnu.org/onlinedocs/gccint/Plugins.html pour s'assurer ou améliorer la qualité du shell considéré. 2. une dépendance mal résolue. Par exemple GNU bash dépend de la bibliothèque partagée GNU readline ou au moins de libtinfo.so.6, et celle-ci pourrait être mal installée, être corrompue par suite d'une usure ou d'une défaillance du disque dur, ou contenir des bogues résiduels. Souvent le code C de GNU readline est inclus en partie dans l'exécutable ELF du shell (voir https://man7.org/linux/man-pages/man5/elf.5.html qui décrit ce format ELF) 3. une insuffisance de ressources matérielles: si toute la RAM est pleinement utilisée execve(2) ou fork(2) peuvent échouer ou des ressources logicielles (par exemple liées aux limites au sens de https://man7.org/linux/man-pages/man2/setrlimit.2.html peuvent être atteintes par le script Pour mémoire le shell sash https://en.wikipedia.org/wiki/Stand-alone_shell est libre (avec des bogues résiduels qu'on peut ou non trouver acceptables) et facile à modifier pour tout programmeur C. Il est linké statiquement et n'a donc pas de dépendances dynamiques. Je mentionne tout de même aussi Les travaux de Julia Lawall et ses collègues autour de Coccinnelle: https://fr.wikipedia.org/wiki/Coccinelle_%28logiciel%29 L'existence de libcurl (en https://curl.se/libcurl/ ...) et de libonion (en https://www.coralbits.com/libonion/ ...) et du protocole FastCGI https://fr.wikipedia.org/wiki/FastCGI bien moins gourmand que CGI (common gateway interface) et peut-être plus sûr. L'existence du protocole ICAP https://fr.wikipedia.org/wiki/Internet_Content_Adaptation_Protocol L'existence de la bibliothèque libre OpenCV.org pour l'analyse d'images et peut-être de vidéos. N'oubliez pas non plus les contraintes légales en France liées à la vidéosurveillance automatique, et celles du RGPD (et les articles 323 et suivants de notre code pénal). -- Basile STARYNKEVITCH <[email protected]> 8 rue de la Faïencerie http://starynkevitch.net/Basile/ 92340 Bourg-la-Reine https://github.com/bstarynk France https://github.com/RefPerSys/RefPerSys https://orcid.org/0000-0003-0908-5250

