我在 Red Hat RHEL 7.9 服务器上运行。我有一个 Perl 脚本,它重复调用 fork() 来运行数百个不同的基于 C 的小型程序。它一次只运行大约 10 个程序(我的机器有 16 个核心),然后等待前一个程序完成,然后再调用 fork() 启动一个新程序。大多数程序在 10 秒内完成。
几分钟后,许多程序被杀死。如果我一次又一次地运行外部 Perl 脚本,则会杀死不同数量的程序,并且杀死不同的单个程序。另外,如果我减少并发程序的数量,那么被杀死的程序的数量就会显着减少(因此这可能是一个资源问题)。我不知道为什么这些程序被杀死。我在控制台窗口中看到的只是此错误消息(其中 XXXXXX 是 PID):
sh: line 1: XXXXXX Killed ProgName
我怎样才能找出这些程序被杀死的原因?或者,我怎样才能阻止他们被杀,或者我自己研究一下?