3
所以我有這個小腳本檢查特定行兩個日誌文件和行進行比較。 該腳本用於多個不同的Windows Bamboo代理。但在一個它只是掛起,並沒有退出。由於在竹子中使用腳本,因此當該腳本不能退出時,整個作業會掛起。 當我通過遠程訪問檢查計算機並殺死腳本時,作業繼續進行,直到它再次到達腳本。Perl腳本掛起無故
這是腳本,這是由另一個腳本啓動。
#! /usr/bin/perl
my $naluresult = 2;
my $hevcresult = 2;
my $hevcfailed = 0;
use strict;
use warnings;
#---------------------------------------------
#check for $ARGV[0] and $ARGV[1]
open(my $nalulog, "<", $ARGV[1])
or die "cannot open File:$!\n\n";
while (<$nalulog>) {
chomp;
$_ =~ s/\s+//g;
if ($_ =~ m/MD5:OK/) {
$naluresult = 1;
} else {
if ($_ =~ m/MD5:MISSING/) {
$naluresult = 0;
}
}
}
close $nalulog;
#---------------------------------------------
open(my $hevclog, "<", $ARGV[0])
or die "cannot open File:$!\n\n";
while (<$hevclog>) {
chomp;
$_ =~ s/\s+//g;
if ($_ =~ m/MD5check:OK/) {
$hevcresult = 1;
last;
} else {
if ($_ =~ m/MD5check:FAILED/) { $hevcfailed = 1; }
}
if ($hevcfailed == 1) {
#do stuff
}
}
close $hevclog;
#---------------------------------------------
if ($hevcresult == 2) {
print("Missing MD5 status in HEVC Output");
exit(-1);
} elsif ($naluresult == 2) {
print("Missing MD5 status in NALU Output");
exit(-2);
} else {
if ($naluresult == $hevcresult) { exit(0); }
else {
#different if-statements to print() to log
exit(1);
}
}
#---------------------EOF---------------------
您無法確定它是否掛起,也許它正在讀取非常大的文件? '$ | = 1;'在頂部,'打印'。「除非$。 %1000;'每個'while'裏面 – 2014-09-30 09:19:59
我無法確定,這是正確的。但文件並不大。 300到2000行之間。這些應該在1100分鐘內解析。 – 2014-09-30 09:25:52
另外,仔細分析'#do stuff'部分。 – choroba 2014-09-30 09:31:25