使用 ulimit 时出现一些非常奇怪的行为。我只是打开一个新的外壳
Hector:~ robertj$ ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
file size (blocks, -f) unlimited
max locked memory (kbytes, -l) unlimited
max memory size (kbytes, -m) unlimited
open files (-n) 256
pipe size (512 bytes, -p) 1
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 532
virtual memory (kbytes, -v) unlimited
Run Code Online (Sandbox Code Playgroud)
好的,即使我将 /etc/launchd.conf 中的文件限制设置为无限制,这似乎也是默认设置。但这是另一天的另一个问题。
现在我将文件数增加到 1024,让我们再次查看新设置。
Hector:~ robertj$ ulimit -n 1024
Hector:~ robertj$ ulimit -a | grep open
open files (-n) 1024
Run Code Online (Sandbox Code Playgroud)
好的,那行得通。凉爽的!现在让我们再次更改设置
Hector:~ robertj$ ulimit -n 512
Hector:~ robertj$ ulimit -a | grep open
open files (-n) 512
Run Code Online (Sandbox Code Playgroud)
再次,效果很好。让我们再次更改为更高的值
Hector:~ robertj$ ulimit -n 1024
-bash: ulimit: open files: cannot modify limit: Operation not permitted
Hector:~ robertj$
Run Code Online (Sandbox Code Playgroud)
这他妈是什么东西?
如果我尝试 sudo 执行此操作,则不会出现错误,但值也不会更改。
Hector:~ robertj$ sudo ulimit -n 1024
Password:
Hector:~ robertj$ ulimit -a | grep open
open files (-n) 512
Hector:~ robertj$
Run Code Online (Sandbox Code Playgroud)
这里发生了什么?
我完全被难住了!
任何帮助是极大的赞赏...
罗伯杰
Gor*_*son 19
有两件事让你困惑。首先是每个资源都有硬限制和软限制。 ulimit -n 512
将两个人,但ulimit -a
只显示了软限制。一旦设置了硬限制,就只能减少它。
$ ulimit -n
256
$ ulimit -Hn # There's no initial hard limit
unlimited
$ ulimit -n 512 # This sets both the hard and soft limits
$ ulimit -n
512
$ ulimit -Hn
512
$ ulimit -n 1024 # Once set, the hard limit cannot be increased
-bash: ulimit: open files: cannot modify limit: Operation not permitted
Run Code Online (Sandbox Code Playgroud)
让你感到困惑的第二件事是,sudo ulimit
它并没有像你认为的那样做。它产生一个(根)子过程,设置打开文件限制该子过程,然后退出子处理。限制是每个进程的设置,因此对它们进行 sudo 更改不会做任何有用的事情。
归档时间: |
|
查看次数: |
7402 次 |
最近记录: |