14078 write(4, "Phj\0_Z12Cbuf_AddTextPKc\0_ZN17IVM"..., 10240) = 10240 14078 read(3, 14080 write(1, "aitsIcEENS_9allocatorIcEEEENS_4p"..., 4096) = 4096 14078 <... read resumed> "aitsIcEENS_9allocatorIcEEEENS_4p"..., 10240) = 4096 14078 read(3, 14080 write(1, "\320\23\0\0\225\3\0\0\0\0\0\0{\16\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 14078 <... read resumed> "\320\23\0\0\225\3\0\0\0\0\0\0{\16\0\0\0\0\0\0\0\0\0\0\0"..., 6144) = 4096 14078 read(3, 14080 write(1, "\234\10\0\0\0\0\0\0\216\r\0\0\306\22\0\0_\5\0\0\253\10"..., 4096) = 4096 14078 <... read resumed> "\234\10\0\0\0\0\0\0\216\r\0\0\306\22\0\0_\5\0\0\253\10"..., 2048) = 2048 14078 write(4, "aitsIcEENS_9allocatorIcEEEENS_4p"..., 364) = 364 14078 close(4) = 0 14078 utime("hl2/bin/engine_amd.so", [2006/08/21-04:49:35, 2006/07/12-03:16:37]) = 0 14078 chown32("hl2/bin/engine_amd.so", 32003, 32004) = 0 14078 write(1, "block 2087882: hl2/bin/libsteamv"..., 61) = -1 EPIPE (Broken pipe) 14078 --- SIGPIPE (Broken pipe) @ 0 (0) --- 14080 write(1, "\371\23\0\0\374\1\0\0\263\16\0\0\262\r\0\0[\20\0\0\0\20"..., 4096) = -1 EPIPE (Broken pipe) my $com = ''; if($os =~ /freebsd/i) { $com = "nice -n 20 gtar -Rxjvf "."$package"; } else { $com = "nice -n 20 tar -Rxjvf "."$package"; } $starttime=time; $timeout=1; $file="unknown"; $lines=0; $blockofnuls=0; ($ttlfiles,$lastblock)=getinstallfileinfo("hl2","local"); $printcnt=int($ttlfiles/100); $SIG{INT} = \&timedout; $SIG{ALRM} = \&timedout; $SIG{QUIT} = \&timedout; alarm $timeout; $0="cPGSD: Installing $query for $user"; my $ppid = open(GSFILE,"$com |") || print $s "Can\'t run $com : $!\n"; open(INST,">$home/.gameservers/.installing_hl2"); print INST "$ppid\n"; close(INST); `chown $user\:$user $home/.gameservers/.installing_hl2`; until($blockofnuls == 1) { while() { eval { alarm $timeout; chomp; my $line=$_; if($line =~ /Block of nuls/i) { $blockofnuls = 1; last; } if(length($line) < 1) { next; } if($line !~ /^Block\s+(\d+)\:\s+(.*)/i) { next; } $cblock = $1; $cfile=$2; $lines++; $tcnt++; $ctime=time; $time_spent=$ctime-$starttime; if($tcnt == $printcnt) { $tcnt=0; $arate = $time_spent ? int($lines/$time_spent) : 0; $remaining_time = $arate ? int( ($ttlfiles-$lines)/$arate) : 0; print $s "\n"; } if(!kill 0 => $ppid) { print $s "$ exit(0); } }; # end of eval } # end of while() loop } # end of until($blockofnuls == 1) loop close(GSFILE); $cblock--; print $s "\n"; (snip)