У меня есть программа, которая выполняет некоторые операции с указанным файлом журнала, сбрасывая на диск несколько раз для каждого выполнения. Я вызываю эту программу из Perl-скрипта, который позволяет указать каталог, и запускаю эту программу для всех файлов в этом каталоге. Это может занять много времени из-за всех флешей.
Я хотел бы выполнить программу и запустить ее в фоновом режиме, но я не хочу, чтобы конвейер выполнялся тысячами раз. Это фрагмент:
my $command = "program $data >> $log";
myExecute("$command");
myExecute в основном запускает команду, используя system(), наряду с некоторыми другими функциями ведения журнала/печати. Что я хочу сделать, так это:
my $command = "program $data & >> $log";
Это, очевидно, создаст большой конвейер. Есть ли способ ограничить количество фоновых исполнений одновременно (предпочтительно с помощью &)? (Я хотел бы попробовать 2-4).