Thread Ausgabe eines Systemprogramms erfassen (16 answers)
Opened by errorsmith at 2012-12-28 11:15

errorsmith
 2012-12-30 09:21
#164498 #164498
User since
2012-12-28
10 Artikel
BenutzerIn
[default_avatar]
Hm, Klappt irgendwie nicht ganz, ich hab mir auch die Doku zum Time::HiRes angesehen, das Beispiel dort ist fast genauso wie deines, ich weiß nicht so recht woran es hakt. Soweit ich das sehen kann, wird die print_line_sub auch garnicht erst aufgerufen, wo hab ich da möglicherweise gepfuscht?

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
our $debug = 1;
my $timer = 10;
sub debug
{
if ( $debug == "1" )
{
my $text = shift;
print $text;
}
else
{
return 0;
}
}


my $prline;
my $print_line_sub = sub {
debug ("timer triggered, running print_line_sub\n");
print $prline;
};

# run command and capture output (reporting to backend)

# init timer
$SIG{VTALRM} = $print_line_sub;
setitimer(ITIMER_VIRTUAL,1,$timer);


open(my $cmd,'-|',"./test.script");
my $line="";
while ($line = <$cmd>)
{
$prline = $line;
}


und zur Sicherheit, falls es daran liegt, noch mein testscript:

Code: (dl )
1
2
3
4
5
6
7
8
9
#!/bin/bash
START=0
END=1325
COUNTER=0
while [ $COUNTER -lt $END ]; do
PERC=$(echo "scale=2; $COUNTER / $END * 100" | bc)
echo "The counter is $COUNTER ($PERC %)"
let COUNTER=COUNTER+1
sleep 0.1

View full thread Ausgabe eines Systemprogramms erfassen