我在 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.exe
then 就会无限期地挂起。为什么不退出?
如果我使用exec()
而不是system()
,“其他东西”没有完成,它仍然没有退出。
谢谢