perl - fork 失败并显示 "resource temporarily unavailable"。哪个资源?

标签 perl fork ulimit

我继承了一个 Perl 脚本,根据机器配置,该脚本在使用 $ 调用 fork 期间会失败? == 11

根据errno.hvarious posts , 11 是EAGAIN,即“再试一次”,因为某些资源暂时不可用。

有没有办法确定哪个资源导致 fork 失败, 除了一一增加各种系统限制之外 ( open file descriptorsswap space , 或者 数量allowable threads )?

最佳答案

假设您的意思是 $!EAGAIN,我系统上的 fork 手册页显示:

EAGAIN: fork() cannot allocate sufficient memory to copy the parent's page tables and allocate a task structure for the child.

EAGAIN: It was not possible to create a new process because the caller's RLIMIT_NPROC resource limit was encountered. To exceed this limit, the process must have either the CAP_SYS_ADMIN or the CAP_SYS_RESOURCE capability.

您是否正在尝试创建大量流程?当你的 child 长大后,你会收割他们吗?

关于perl - fork 失败并显示 "resource temporarily unavailable"。哪个资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44081295/

相关文章:

javascript - 使用 mechanize 勾选复选框

linux - 使用 Device::SerialPorts 在 Linux 中编程串口

perl - 如何使用 Perl 进行屏幕抓取?

c - 我应该在这段代码中的什么地方使用 wait 和 waitpid?

CTRL-C 不会杀死程序 linux/C

c - `sysconf()` 和 `getrlimit()` 有什么关系和区别?

linux - 在 Linux 上设置文件数量限制的最正确方法是什么?

mysql - 如何将 CSV 格式添加到 LWP::Simple

php - 带有 libevent 的多进程 php

c++ - 为什么 ulimit -v 在 clang 的地址 sanitizer 下不起作用?