问题标签 [setrlimit]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
linux - 一些 Linux 错误消息没有被重定向到 2>x 的文件
我有一个沙盒程序,它使用 setrlimit() 来限制在其控制下运行的另一个程序的输出文件大小,我运行如下:
“-max 2048”开关告诉沙箱将输出限制为最大 2K 字节。
如果“myprogram.exe”内部发生异常,或者我故意从“myprogram.exe”内部向 stderr 写入一些内容,它会按预期出现在 r2 中。但是,当超出文件大小限制时,我收到以下错误消息:
但它没有按预期写入错误日志 r2,而是出现在控制台上。谁能告诉我为什么会这样?有什么办法可以安排将此消息与其他所有内容一起写入 r2?
php - Paypal IPN 数据捕获脚本的 PHP setrlimit 错误
所以我有一个 IPN 数据捕获脚本,几个月来一直运行良好。完全没有问题。最近我添加了一个电子邮件功能来向我的客户发送电子邮件。这些电子邮件工作了大约 15-20 天左右。我发现订单没有正确进入数据库并检查了它。现在我不知所措了。
我有几个 setrlimit 错误 文件中的日志中不允许操作。然而,它停止了扔它们。我转储了我的日志,看看是否是日志已满或其他什么问题,但仍然没有。Paypal 正在发送消息,而不是返回错误。如果出现问题,它通常会给出 502 错误。所以脚本正在捕获它,但没有数据最终出现在我的数据库中,也没有发送电子邮件。我仍然对这些内容感到满意,所以我应该看到它们。我有点不知所措。
有任何想法吗?
我是否搞砸了电子邮件代码而不是关闭某些东西并填充缓冲区?我该如何改变它?想法?
c - 设置低 rlimit_nproc 值甚至不允许单个分叉
我正在尝试使用 setrlimit 来限制程序可以创建的进程数。这是我的代码:
由于rlim_max
and的rlim_cur
值为 10,我的程序应该被允许分叉 10 个进程。但现在,即使是一次分叉调用,它也失败了。虽然如果我将值设置为 250 左右它会起作用。我不明白为什么会这样。我想要一种方法将分叉的数量限制为n
.
c - 处理不受 setrlimit 限制的资源
我编写了一个简单的程序来将它的数据大小限制为 65Kb 并验证我正在分配一个超过 65Kb 的虚拟内存,并且从逻辑上讲,如果我做的所有正确(如下)malloc 调用应该失败,不是吗?
令人惊讶的是,输出是这样的 -
我做错了什么吗?请放弃您的输入。谢谢!
c++ - 取消 ulimit 界限
我正在为不受信任的代码编写隔离沙箱,因此我正在寻找隔离代码执行的安全方法。我还需要一种方法来收集代码统计信息(内存使用情况、cpu 使用情况等)
我尝试过 Docker,但 Stats API 只能在第二个周期内流式传输,并且一些代码(尤其是用 C 或 C++ 编写的)运行速度快 1000 倍以上。
我问了一个问题,setrlimit
但是人们在评论中写道用户可以取消限制(可能有办法阻止用户这样做?)
我也听说过ulimit
。这种方式足够安全并且不能被用户覆盖吗?
java - 防止java程序打开线程
我正在尝试运行一个 java 应用程序,更具体地说是一个 jar 编译的应用程序,在 c 中使用 execve()
类似的东西:
这工作正常,但是当我尝试限制该程序可以使用类似打开的线程数时:
我的 JVM 有问题,它会打开线程,我正在阻止它,所以我有这个错误:
如何防止在 java 应用程序中打开的线程而不是由 JVM 打开的线程?!
请注意,问题是如何防止用户线程而不是系统线程,我需要对运行环境进行限制,就像我在第二个代码“RLIMIT_NPROC”中所做的那样
谢谢!
python - OSx 上的 Python - 设置打开文件的新限制
我想使用以下命令设置可能打开的文件的新限制:
但是,我收到一个错误:ValueError: current limit exceeds maximum limit
有什么办法可以克服这个问题并对 OS X 设置新的限制?
ruby - 使用 Process::setrlimit 限制内存不起作用
我想在我的测试中限制内存使用,所以我测试了Process::setrlimit
first 的行为,这让我很困惑。这是我的代码:
我的 Linux 笔记本电脑中没有任何交换分区,所以我认为 RSS 等于总内存。
我希望这个程序会崩溃,但事实并非如此。它只是打印出10485760
该字符串的正确长度。为什么不崩溃?如何正确设置程序本身的内存限制?
python - 如何使用`setrlimit`来限制内存使用?RLIMIT_AS 杀得太快;RLIMIT_DATA, RLIMIT_RSS, RLIMIT_STACK 根本不杀死
我试图用来setrlimit
限制我在 Linux 系统上的内存使用,以阻止我的进程使机器崩溃(我的代码使高性能集群上的节点崩溃,因为一个错误导致内存消耗超过 100 GiB )。我似乎找不到要传递给的正确资源setrlimit
;我认为它应该是常驻的,不能用 setrlimit 限制,但是我对常驻,堆,堆栈感到困惑。在下面的代码中;如果我只取消注释,即使该数组应该只有 80 MB RLIMIT_AS
,代码也会失败。如果我只取消注释,或两个数组都成功分配,即使总内存使用量为 2 GB 或所需最大值的两倍。MemoryError
numpy.ones(shape=(1000, 1000, 10), dtype="f8")
RLIMIT_DATA
RLIMIT_RSS
RLIMIT_STACK
我想让我的程序在尝试分配太多 RAM 时立即失败(无论如何)。为什么没有RLIMIT_DATA
,RLIMIT_RSS
和做我的意思,传递给的正确资源是RLIMIT_STACK
什么?RLIMIT_AS
setrlimit
RLIMIT_AS
未注释行的输出:
与任何其他未注释的运行时的输出:
在最后一行,top
报告我的进程正在使用 379 GB VIRT、2.0 GB RES。
系统详情:
c++ - 使用 setrlimit 时 OpenMP 崩溃
我在 Linux 服务器中有一个进程,正在使用 setrlimit() 函数为该进程设置 1gb 虚拟内存,并且代码库中使用了 openmp。在执行过程中崩溃,生成核心文件。我已经调试了核心文件,发现在#pragma omp parallel for line 中发生了崩溃。我认为 openmp 语句中超出了虚拟内存,并且引发了 bad_alloc 异常并且未对其进行处理。我试图在 try 块中添加此 #pragma omp parallel for line 并添加带有 bad_alloc 异常的 catch 块,但它没有捕获。即使我厌倦了 catch(...) 但没有运气。
大家能否分享一下如何处理 omp 语句引发的异常的建议。