diff --git a/src/tetras-back b/src/tetras-back index 80544d6cfc4c54067dd38e8864d2c996bece12c0..4bacd3ea354f86c13a60365396a2359111279b0b 100755 --- a/src/tetras-back +++ b/src/tetras-back @@ -168,16 +168,16 @@ sub do_backup($){ my $name = $CFG::CFG{DISKS}{KNOWN}{$uuid}{name}; my $pid=0; my $error = 0 ; - $SIG{KILL} = sub { $error=2;}; + $SIG{KILL} = sub {$Logger->alert("Tué pendant la sauvegarde"); $error=2; kill("SIGTERM", $pid);}; $Logger->info("Demarrage de la sauvegarde sur le disque: $name"); # Start each script for my $scr (keys %{$CFG::CFG{'SCRIPTS'}}){ my $cmd="$CFG::CFG{'scriptdir'}/$scr $CFG::CFG{'SCRIPTS'}{$scr} $disc"; $Logger->info("Lancement du script de sauvegarde '$CFG::CFG{'scriptdir'}/$scr'"); $pid = open SCRLOG, '-|', "$cmd 2>&1"; - $SIG{KILL} = sub { $error=2; kill("SIGTERM", $pid);}; # Forward script output while (my $line = <SCRLOG>){ + utf8::decode($line); $Logger->info($line); } if (! close(SCRLOG)){ @@ -189,7 +189,6 @@ sub do_backup($){ } $Logger->info("Script de sauvegarde $scr terminé"); } - $SIG{KILL} = sub { $error=2;}; # Tell main thread that we are done return end_backup($name, $error); } @@ -321,7 +320,7 @@ sub start_daemon(){ $CFG::CFG{DISKS}{KNOWN}{$uuid}{'last_seen'}=time(); } if (exists($running_backups{$uuid})){ - $Logger->alert("Arrachement de disque"); + $Logger->alert("Arrachage de disque"); # Kill the thread $running_backups{$uuid}->kill('SIGKILL'); }