Mac os x 10.7.4 进程限制

Mar*_*ere 7 mac process launchctl ulimit macos

我有一个709最大用户进程。我想加倍,或更多。

第一:ulimit

> 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) 709
virtual memory          (kbytes, -v) unlimited
Run Code Online (Sandbox Code Playgroud)

好吧 :

> sudo ulimit -u 1418
Password:
Run Code Online (Sandbox Code Playgroud)

让我检查...

> 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) 709
virtual memory          (kbytes, -v) unlimited
Run Code Online (Sandbox Code Playgroud)

不 !

然后,用launchctl

> launchctl limit
    cpu         unlimited      unlimited      
    filesize    unlimited      unlimited      
    data        unlimited      unlimited      
    stack       8388608        67104768       
    core        0              unlimited      
    rss         unlimited      unlimited      
    memlock     unlimited      unlimited      
    maxproc     709            1064           
    maxfiles    256            unlimited 
Run Code Online (Sandbox Code Playgroud)

有或没有 sudo,我输入:

> launchctl limit maxproc 1418 1418
Run Code Online (Sandbox Code Playgroud)

检查...

> launchctl limit
    cpu         unlimited      unlimited      
    filesize    unlimited      unlimited      
    data        unlimited      unlimited      
    stack       8388608        67104768       
    core        0              unlimited      
    rss         unlimited      unlimited      
    memlock     unlimited      unlimited      
    maxproc     709            1064           
    maxfiles    256            unlimited 
Run Code Online (Sandbox Code Playgroud)

没变!

最后,只需检查另一个命令:

> sysctl -a | grep proc
kern.maxproc = 1418
kern.maxfilesperproc = 10240
kern.maxprocperuid = 1418
kern.aioprocmax = 16
kern.procname = 
kern.maxproc: 1418
kern.maxfilesperproc: 10240
kern.maxprocperuid: 1418
kern.aioprocmax: 16
kern.procname: 
machdep.cpu.processor_flag: 0
security.mac.proc_enforce: 1
Run Code Online (Sandbox Code Playgroud)

这里的限制甚至不正确。我已经验证过,真正的限制是 709 proc。

我现在非常生气。我有一些工作要做,这该死的 mac 不允许我这样做。 问题: - 我怎样才能升级那个号码?- 它会对我的系统造成一些损害吗?- 首先为什么要限制数量?

小智 5

我在 10.6.8 上遇到了相同的行为,所以我尝试了这篇文章中的解决方案。

如果以下文件不存在,则创建它们,然后添加/修改以下几行。(转述)

sudo vim /etc/launchd.conf

limit maxproc 512 2048
limit maxfiles 512 unlimited
Run Code Online (Sandbox Code Playgroud)

sudo vim /etc/sysctl.conf

# Turn up maxproc
kern.maxproc=2048

# Turn up the maxproc per user
kern.maxprocperuid=1024

# Remove core files
kern.coredump=0
Run Code Online (Sandbox Code Playgroud)

非常适合我。我希望它也适用于更新版本的 OS X。

干杯