在 CentOS 系统中,ulimit 命令用于设置或获取用户进程的资源限制。默认情况下,通过 ulimit 命令设置的资源限制仅在当前 shell 会话期间有效。当您关闭终端或重新登录时,这些设置将不再生效。
如果您希望 ulimit 设置在长期内生效,可以通过以下方法实现:
修改 /etc/security/limits.conf 文件:
打开 /etc/security/limits.conf 文件,并添加相应的限制规则。例如:
* soft nofile 65536
* hard nofile 65536
这将为所有用户设置软硬的文件描述符限制。您可以根据需要修改用户名、资源类型和限制值。
保存文件后,重新登录以使更改生效。
修改 /etc/pam.d/system-auth 和 /etc/pam.d/password-auth 文件:
打开 /etc/pam.d/system-auth 和 /etc/pam.d/password-auth 文件,并确保包含以下行:
session required pam_limits.so
这将确保 PAM(Pluggable Authentication Modules)在创建新会话时应用 limits.conf 中的设置。
修改 systemd 服务文件:
如果您希望为特定的 systemd 服务设置资源限制,可以编辑相应的服务文件(通常位于 /etc/systemd/system/ 目录下)。在 [Service] 部分添加 LimitNOFILE 行,例如:
[Service]
LimitNOFILE=65536
保存文件后,重新加载 systemd 配置并重启服务:
sudo systemctl daemon-reload
sudo systemctl restart your_service_name
通过以上方法之一,您可以使 ulimit 设置在 CentOS 系统中长期生效。