1
我正在開發一個腳本,用於基準測試和比較以各種語言(Perl,Java,R)編寫的用於相同目的的程序。我需要同時運行兩個子例程,一個使用Unix TOP命令,另一個執行程序。我試圖使用Parallel :: ForkManager。下面的代碼段我使用叉:如何在另一個孩子完成時退出子進程
sub parallelRun{
$commands[0]= sub{topExec};
$commands[1]= sub{masExec};
my $manager = new Parallel::ForkManager(2);
for($i=0; $i <= $#commands; $i++) {
$pid = $manager-> start and next;
push(@pid,$pid);
$commands[$i]();
$manager-> finish;
} # For End
$manager->wait_all_children;
$manager-> finish($pid[0]);
undef(@pid);
} # Sub End
我需要完成topExec()
(頂部執行)時masExec()
結束,但是該腳本TOP命令後懸掛。
獎金問題:有沒有辦法讓masExec()
執行的程序的系統pid在TOP命令中跟蹤它?現在,我正在使用Unix Top命令(sub topExec)中的列用戶和命令進行跟蹤。
對不起,對於任何語言錯誤(兩者都非本地))。