Bonjour,
J'ai un programme perl utilisant les threads et que je fais tourner en démon. Je veux avoir un suivi en ligne de son activité (via des print dans le prog), je le lance donc en redirigeant la sortie standard vers un fichier, mais ça ne fonctionne pas.
Petite démonstration avec le simple programme test.pl ci-dessous :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
#!/usr/bin/perl
use threads;
my $th = threads->new(\&th_func);
$th->join;
 
sub th_func {
  my $i = 0;
  while (1) {
    print "$i\n";
    sleep 1;
    $i++;
  }
}
Si on lance le programme directement, ça fonctionne, mais si on redirige la sortie en faisant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
perl test.pl > test.log 2>&1
rien n'apparaît dans le fichier test.log...

Si quelqu'un a une idée ou une solution de contournement, merci d'avance...