On Fri, 3 Dec 2021 19:07:15 +0100 David Ponzone david.ponzone@gmail.com wrote:
Fan de casse-têtes, puzzles, et autres trucs énervants,
Ceci est pour toi.
Soit une Debian 9.5. Soit un script bash qui est lancé par crontab 1440 fois par jour. Dans la crontab, le script est lancé ainsi:
*/1 * * * * script >&/dev/null
En fait, je le lance 3 fois par min, avec des params différents, donc 4320 lancements par jour.
Le script appelle un binaire, qui accessoirement fait lors de son exécution un:
fprintf(stderr, "Resolving remote host '%s'... ", remote_host);
Comme stdout et stderr sont redirigés vers /dev/null, crontab ne m’envoie jamais de mail….
….sauf entre 2 et 20 fois par jour, où j’ai la chance de recevoir un mail qui contient:
Resolving remote host ’truc.bidule.fr'... Done.
Donc lors de 0,2% (environ) des exécutions, stderr n’est pas correctement renvoyée vers /dev/null.
Alors moi perso, je suis pas un fan de ce genre d’énigme, surtout si c’est pour découvrir que c’est un truc connu, un bug de bash, ou de la libc sur une Debian 9.5.
Je lance le chrono, il y a des tueurs sur cette liste :)
Je ne suis pas ce que vous dites, mais je pense après avoir déjà utilisé des lignes dans le genre lors de sessions de débug, qu'il pourrait y avoir un détail à améliorer, peut-être comme ceci en fonction du résultat recherché:
*************
https://memo-linux.com/cest-quoi-devnull-1
“*4*** /home/fred/script/test.sh >/dev/null 2>&1
Dans ce cas, l’administrateur ou root ne (saura) jamais si la commande c’est bien exécutées ou pas. Sauf, si le test est prévue dans le scripte test.sh.”
*************
Il y a probablement encore d'autres options. Je lirai ce que les membres de la liste proposent.
Cordialement, Joyce MARKOLL