Я создаю один временный make-файл для многих тестовых случаев, который выполняется последовательно при передаче его системной команде, например:
system $temp_make_cmd;
Для нормального случая make-файл запускается до завершения.
Но если у нас есть какой-то промежуточный тестовый случай с бесконечным циклом, тогда моя реализация тайм-аута просто убивает процесс бесконечного цикла и выходит.Хотя я хочу, чтобы после таймаута он выполнял и другие тесты.Помогите мне решить мою проблему.
Ниже приведен пример сценария:
my $pid = fork;
if ( $pid == 0) {
POSIX::setpgid(0,0);
system ("$temp_make_cmd");
}
sleep 10;
my $result = waitpid(-1, WNOHANG);
if ($result==0) {
kill('TERM', -$pid);
}
Реализованные запросы для справки: как убить процесс, имеющий несколько форков, используя perl