文章目录
  1. 1. Yosemite修改系统的ulimit - Tan9le的博客
  2. 2. Yosemite修改系统的ulimit

Yosemite修改系统的ulimit - Tan9le的博客

macOS ulimit

Yosemite修改系统的ulimit

Mac OS下面修改ulimit方法有很多,从10.10开始,发生了一些改变,以临时命令行修改为例:

ulimit  1000000 unlimited

则会得到一个错误的提示:

-bash: ulimit: open files: cannot modify limit: Invalid argumen

Google后得知大家都遇到了这个问题,正好【这里有人有相同的问题,有人给出了解决方案】,我的操作步骤如下:

$  kern.maxfiles=65536 |  tee  /etc/sysctl.conf
$  kern.maxfilesperproc=65536 |  tee  /etc/sysctl.conf
$  sysctl -w kern.maxfiles=65536
$  sysctl -w kern.maxfilesperproc=65536
$ ulimit -n 65536 65536    

当然,也可以将ulimit -n 65536 65536 放入~/.bash_profile或者其他shell的自启脚本中,亦或加入开启自启脚本中

还有通过launchd修改的方法:(请注意该方法在yosemite 10.10.x上无效)

编辑/etc/launchd.conf(没有则新建)

添加:

limit maxfiles unlimited unlimited
limit maxproc unlimited unlimited

然后保存后重启,使用launchctl limit查看效果

最后一个方法,还是在launchd上做文章,但是是使用plist的方法,该方法在yosemite 10.10.x上证实有效:

【这里是参考网站】

新增或编辑文件:/Library/LaunchDaemons/limit.maxfiles.plist,内容为:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
  <plist version="1.0">
    <>
      <>Label</>
        <string>limit.maxfiles</string>
      <>ProgramArguments</>
        <array>
          <string>launchctl</string>
          <string>limit</string>
          <string>maxfiles</string>
          <string>65536</string>
          <string>65536</string>
        </array>
      <>RunAtLoad</>
        </>
      <>ServiceIPC</>
        <false/>
    </>
  </plist>

新增或编辑文件:/Library/LaunchDaemons/limit.maxproc.plist,内容为:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple/DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
  <plist version="1.0">
    <>
      <>Label</>
        <string>limit.maxproc</string>
      <>ProgramArguments</>
        <array>
          <string>launchctl</string>
          <string>limit</string>
          <string>maxproc</string>
          <string>2048</string>
          <string>2048</string>
        </array>
      <>RunAtLoad</>
        < />
      <>ServiceIPC</>
        <false />
    </>
  </plist>

这两个文件的所有者应该为:root:wheel

文件的读写权限应该为-rw-r–r–,即644,修改文件权限

sudo chmod 644  /Library/LaunchDaemons/limit.maxfiles.plist
sudo chmod 644 /Library/LaunchDaemons/limit.maxproc.plist

然后再和方法一一样,将ulimit -n 65536 65536 和 ulimit -u 2048 2048 放入~/.bash_profile或者其他shell的自启脚本中,亦或加入开启自启脚本中

文章目录
  1. 1. Yosemite修改系统的ulimit - Tan9le的博客
  2. 2. Yosemite修改系统的ulimit