0

我在 Cygwin 中运行以下命令:

my $pid = fork();

if (!$pid) {
    system($command);
    # do other stuff
    exit;
}
else {           
    sleep $timeout;
    print "Process timed out\n"
    system ("TASKILL /F /T /PID $pid");
}

如果进程超时,它会按预期被终止,以便该部分工作。但是,当该过程及时完成并且“其他事情”完成时,perl.exethen 就会无限期地挂起。为什么不退出?

如果我使用exec()而不是system(),“其他东西”没有完成,它仍然没有退出。

谢谢

4

0 回答 0