- 論壇徽章:
- 0
|
在windows下使用的一段Perl代碼,實現(xiàn)的功能是從腳本同一路徑的config文件中讀取要運行的命令。config文件格式為每條要運行的命令行單獨成行。不斷的讀取要運行的命令行,一條一條執(zhí)行,直到運行時間超過4個小時為止。命令行所用到的exe文件也在腳本的同一路徑下。但是腳本跑起來以后,發(fā)現(xiàn)一個問題。有時候腳本能正常的跑完4個小時。有時候system會返回錯誤: Can't spawn "ses_diag -dwnld -d_mcr abc_def_ghi_jkl.bin 400 1" No such file or directory...
可是所有的文件在這個過程中并沒有改變位置,為什么有時候成功有時候失敗呢
- use strict;
- use warnings;
- use Time::HiRes qw (gettimeofday tv_interval);
- my $t0 = 0;
- my @commands_list = ();
- open CONFIG, "config" or die "Can not open file: config $!\n";
- while (<CONFIG>)
- {
- chomp;
- push @commands_list, $_;
- }
- close CONFIG;
- $t0 = [gettimeofday];
- while (tv_interval($t0, [gettimeofday]) < 4*3600)
- {
- foreach (@commands_list)
- {
- if (system("$_"))
- {
- print "Run-in test paused\n";
- die "Error when executing $_ $!\n";
- }
- }
- }
- print "Run-in test for 4 hours completed successfully!\n";
復(fù)制代碼 |
|