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

Répondre à