포크된 프로세스가 왜 종료되나요?

포크된 프로세스가 왜 종료되나요?

저는 Red Hat RHEL 7.9 서버에서 실행 중입니다. 수백 개의 서로 다른 작은 C 기반 프로그램을 실행하기 위해 반복적으로 fork()를 호출하는 Perl 스크립트가 있습니다. 한 번에 약 10개의 프로그램을 실행한 다음(내 컴퓨터에는 16개의 코어가 있음) 이전 프로그램이 완료될 때까지 기다렸다가 새로운 프로그램을 시작하기 위해 fork()를 호출합니다. 대부분의 절차는 10초 이내에 완료됩니다.

몇 분 후에 많은 프로그램이 종료되었습니다. 외부 Perl 스크립트를 계속해서 실행하면 다른 수의 프로그램이 종료되고 다른 단일 프로그램이 종료됩니다. 또한 동시 프로그램 수를 줄이면 종료되는 프로그램 수가 크게 줄어듭니다(따라서 리소스 문제일 수 있음). 이 프로그램이 왜 죽는지 모르겠습니다. 콘솔 창에 표시되는 것은 다음 오류 메시지뿐입니다(여기서 XXXXXX는 PID입니다).

sh: line 1: XXXXXX Killed                  ProgName

이러한 프로그램이 종료되는 이유를 어떻게 알 수 있나요? 아니면 그들이 죽는 것을 막거나 직접 조사할 수 있는 방법은 무엇입니까?

관련 정보