如何使Perl等待在后台使用system()启动的子进程?

乌萨马·阿尔·玛德

为了简化起见,我有一些Perl代码可以对多个参数执行shell脚本,我只是假设我有如下代码:

for $p (@a){
    system("/path/to/file.sh $p&");
}

在那之后,我想做更多的事情,但是我无法找到一种方法来等待所有子进程完成再继续。

将代码转换为使用fork()将很困难。有没有更简单的方法?

戴夫:

使用fork / exec / wait还不错:

my @a = (1, 2, 3);
for my $p (@a) {
   my $pid = fork();
   if ($pid == -1) {
       die;
   } elsif ($pid == 0) {
      exec '/bin/sleep', $p or die;
   }
}
while (wait() != -1) {}
print "Done\n";

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

杀死通过子进程在后台启动的SimpleHTTPServer进程

如何在SAS中使用rsubmit在后台运行进程而无需等待进程完成

如何在后台启动子进程并通过按键将其停止?

鱼壳如何在后台启动进程的PID

如何运行Python的子进程并将其留在后台

使用子进程在后台运行RFCOMM服务器

子进程:在后台启动进程并在一次调用中启动另一个进程

在后台启动linux进程

如何使用gcloud ssh在后台运行进程

如何使用commands.getoutput在后台启动SimpleHTTPServer

如何使用 QProcess 等待子进程?

如何在我的应用程序中正确运行定时进程,当该应用程序在使用中或在后台时,该进程将停止启动?

在后台启动并等待多个作业启动

在后台启动进程,执行任务,然后在后台终止进程

如何在后台保持sshpass进程?

进程如何定义为在后台运行?

如何检查在后台启动的进程是否仍在运行?

如何在后台使用后台进程和警报管理器创建通知消息?

如何等待在主线程上启动的任务

如何使用powershell脚本在后台进程中获取进程名称?

php在后台启动过程,并等待它完成

如何使用异步方法启动未等待的后台任务?

进程在后台启动之前被杀死

在后台运行进程而不被init,Perl所采用

Strapi如何在后台启动?

如何在后台启动Deluge?

如何在后台启动phantomjs?

如何在后台运行Perl脚本

如何显示等待关闭的隐藏后台进程?