原因
也許你通過各種方式,知道通過以下方式可以修改 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