原因
也许你通过各种方式,知道通过以下方式可以修改 open files:
$ vi /etc/security/limits.conf
* soft nofile 65535
* hard nofile 65535
1
2
3
但是,这种方式只对当前登录的用户生效,其他系统服务则不生效。
这是因为通过 systemctl 启动的服务,会从他它自己的配置文件中读取配置进行设置,所以修改 /etc/security/limits.conf 对一些系统服务是无效的。
当然,这一步也需要进行的。
如何修改
方式一:修改 systemctl 配置
$ vi /etc/systemd/system.conf
# 分别设置软硬限制:<Soft Limit>:<Hard Limit>
DefaultLimitNOFILE=65535:65535
# 同时设置软硬限制
DefaultLimitNOFILE=65535
1
2
3
4
5
修改完成后重启服务器才会生效。
注意,这种方式对所有服务生效,如果想要对某个服务单独设置请看方式二。
方式二:修改单个服务的限制
$ vi /lib/systemd/system/<服务名>.service
# 在 [Service] 后添加(只能同时设置,不支持分别设置)
LimitNOFILE=65535
1
2
3
修改完成后重启该服务即可,不需要重启整个服务器。
其他问题
如何查看是否生效?
$ cat /proc/<PID>/limits
1
还是不生效?
一些系统服务是通过 /etc/init.d/ 下的脚本启动的,启动脚本可能进行了单独设置,可以在脚本中搜索关键字 ulimit 进行确认。
————————————————
版权声明:本文为CSDN博主「ihobin」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_40523513/article/details/116524727