在mac中会遇到too many open files
问题,网上的解决方案有以下三种:
采用sysctl
sudo sysctl -w kern.maxfilesperproc=16384
sudo sysctl -w kern.maxfiles=32768
采用launchctl
sudo launchctl limit maxfiles 16384 32768
采用ulimit
ulimit -n 65536
目前了解的是ulimit
是当前shell
有效,sysctl
和launchctl
是system wide
,那么sysctl
和launchctl
这两种方式有何区别以及二者有什么关系呢?
正好这两天也遇到写Socket并发数量限制的问题,索性找到了这个
http://serverfault.com/questions/502053/difference-between-ulimit-launchctl-sysctl
sysctl是设置全局的
而launchctl,则仅仅是临时设置成全局的