3

试图增加我的堆栈大小(初始值为 8900(或多或少)),我做了以下事情:

ulimit -s 10000

然后我的堆栈大小是 10000。然后我做了:

ulimit -aH

从这一点开始,我无法增加堆栈大小,它总是会说:

bash: ulimit: stack size: cannot modify limit: Operation not permitted

但我可以减少它。所以我做了:

ulimit -s 8000

我的堆栈大小为 8000。

现在出现了奇怪的事情,这就是我正在改变的“软”限制,因为我没有对 做任何事情sudo,我应该能够再次达到 10000 或 9000,但这是不可能的。这让我觉得我改变的是“硬”限制,因为可以减少它,但不能增加它,但我没有从根本上工作!

  1. 有没有可能我在不使用的情况下更改了“硬”限制sudo
  2. 如果我更改了“硬”限制,如何将其重置为初始默认值?
4

1 回答 1

6

如果既不使用-S也不-H使用,软限制和硬限制都被设置。在我的机器上,堆栈大小的默认硬限制是无限的:

$ ulimit -aH | grep stack
stack size    (kbytes, -s) unlimited

经常使用可以改变硬限制和软限制。对非 root 用户的唯一限制是,不能增加硬限制。

一个简单的解决方案是使用 仅更改软限制ulimit -S -s 10000

于 2013-09-15T14:32:36.320 回答