This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.
Closed 2 years ago.
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(1)
#Raku IRC频道中的人们在解决此
问题时停止该过程 非常有用。打印了错误消息。)并查看rakudo编译器流程之一的
/proc/$ pid/fd
显示,它已打开1024个文件(ls -1/proc/$) pid/fd |。这些文件中的大多数如下:
因此,这是编译器打开许多预编译文件的编译器。这实际上是非常合理的,因为依赖树很容易构成>具有一个或两个较大依赖性的非琐事项目中的1000个文件。 (就我而言,有红色和 cro 在deps中。
/cpan:jnthn/cro :: http 因此,我有一个相当低的限制集。调用
ulimit -n 4096
在运行我的应用程序之前使其正常工作。考虑到以上所有内容,干净的解决方案似乎是将以下内容添加到
/etc/security/limits.conf
:The people in the #raku IRC channel were super helpful in solving this.
Stopping the process at the point it errors (I compiled my own Rakudo and put a
sleep
right before where the error message is printed.) and looking at/proc/$PID/fd
of one of the rakudo compiler processes showed that it has exactly 1024 files open (ls -1 /proc/$PID/fd | wc -l
). Most of those files look as follows:So it's the compiler that has lots of precompiled files open. That's actually quite plausible, as the dependency trees can easily comprise > 1000 files in non trivial projects with one or two larger dependencies. (In my case there is Red and Cro in the deps.)
ulimit -Sn
prints1024
. So I have a rather low limit set. Callingulimit -n 4096
before running my application makes it work.Considering all of the above, the clean solution seems to be to add the following to
/etc/security/limits.conf
: