- 论坛徽章:
- 0
|
在windows下使用的一段Perl代码,实现的功能是从脚本同一路径的config文件中读取要运行的命令。config文件格式为每条要运行的命令行单独成行。不断的读取要运行的命令行,一条一条执行,直到运行时间超过4个小时为止。命令行所用到的exe文件也在脚本的同一路径下。但是脚本跑起来以后,发现一个问题。有时候脚本能正常的跑完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";
复制代码 |
|