在我们的实时服务器中遇到了一个问题。
拥有每天运行近 15 到 18 小时的脚本 (perl)。它每天创建 100 多个子流程。它有一个地方有命令(我们在命令行 solaris 框中运行的产品命令),该命令在 perl 代码中用反引号触发。
看起来 back ticks 命令被随机跳过或失败。
例如。如果我需要为 50 个客户运行 2 或 3 个随机失败。
我没有看到该命令已在任何地方触发的证据。
由于它的实时服务器,在我们确定问题之前,我们甚至无法尝试对代码进行太多更改。
这是代码..
my $comm = "inventory -noX customer1"; #sample command i have given here
my $newLogFile = "To capture command output here we have path whre the file gets created");
my $piddy = `$comm 2>&1 > $newLogFile`;
是不是因为后面的勾号,我真的不确定:(。
还尝试了各种分析,如内存/CPU/磁盘空间/在 LD_LIBRARY_PATH 中添加 librtld_db.so 等......但没有运气......而且 perl 是 64 位......我还能做什么?:(