Solaris 9下如何永久修改用户最大打开文件数(ulimit -n)
如何在Solaris 9中永久修改用户的最大打开文件数(ulimit -n)
我太懂你现在的困扰了——Solaris 10里用projadd -K就能轻松搞定的文件描述符限制,到了Solaris 9这里完全不好使,连直接改/etc/project都没效果。别慌,Solaris 9的资源限制机制和10略有不同,咱们用它原生的方法来解决:
第一步:正确配置/etc/project文件
Solaris 9的/etc/project字段顺序是严格的:项目名:项目ID:注释:关联用户列表:资源属性,你之前的条目可能因为用户列表为空,导致没关联到目标用户,所以没生效。
打开/etc/project添加(或修改)如下条目:
proj.files:100::你的用户名:process.max-file-descriptor=(basic,8192,deny)
- 把
你的用户名替换成你要修改的实际用户名,如果要给多个用户生效,用逗号分隔(比如user1,user2) - 项目ID
100要确保没被系统里其他项目占用,你可以用projects -l查看已有的项目ID
第二步:让用户关联到这个项目
光改/etc/project还不够,得让用户登录时自动使用这个项目。编辑/etc/user_attr文件,给目标用户添加项目属性:
你的用户名::::project=proj.files
这一步是告诉系统:这个用户登录后默认使用proj.files项目的资源限制。
第三步:验证配置是否生效
- 先让用户重新登录(或者用
newtask -p proj.files临时切换到该项目) - 执行
ulimit -n,应该能看到输出8192 - 也可以用
prctl -i project proj.files查看项目的详细资源限制,确认process.max-file-descriptor的basic值是8192
为什么之前的方法没生效?
- Solaris 9的
projadd/projmod确实没有-K选项,所以只能手动编辑配置文件 - 你之前的
/etc/project条目里用户列表为空,系统不知道要把这个限制应用给谁,自然不会生效 - 必须通过
/etc/user_attr把用户和项目绑定,否则用户登录时还是用默认项目
内容的提问来源于stack exchange,提问作者RuslanGustomyasov
相关产品推荐
相关产品推荐

