为什么在 linux system service 启动服务,最大文件描述符变成了默认的 4096

简介: 修改系统或用户文件描述符限制可能未生效,需确保执行系统重启、systemd 重启或服务重启以加载新配置。注意服务运行账户的权限和配置文件中的限制,检查服务 unit 文件是否覆盖默认限制。临时 `ulimit` 调整不适用于服务启动,应修改配置文件。还要确认内核版本和配置是否允许更高的限制。

配置未生效

您可能已经尝试过修改系统或特定用户的文件描述符限制,如编辑 /etc/security/limits.conf 或 /etc/systemd/system.conf 文件,增加了 DefaultLimitNOFILE 参数的值。但如果没有正确应用这些更改,或者没有重启相应的服务以使新配置生效,系统仍然会使用旧的默认值。确保您在修改配置后执行了以下操作之一:
系统重启:重启整个系统可以确保新的系统级配置在整个系统启动时被加载。
重启 systemd:如果不想重启整个系统,可以尝试重启 systemd 以加载新的配置。这通常通过执行 systemctl daemon-reload 命令实现。
重启服务:针对某个具体服务,即使系统全局配置已更新,也需要重启该服务以使其遵循新的限制,例如 systemctl restart your-service-name.service。

用户与服务账户权限:

如果服务以非 root 用户身份运行,并且您仅在 root 用户或某个其他用户配置文件中调整了最大文件描述符限制,那么该服务所使用的用户账户可能仍受其自身用户配置文件中较低的限制约束。请确保在相应服务运行账户的配置文件(如 /etc/security/limits.d/ 目录下的特定用户或组配置文件)中也设置了适当的限制。

服务自身的配置覆盖:

有些服务可能会在其自身的 systemd unit 文件(.service 文件)中显式设置资源限制,这会覆盖系统级别的默认限制。检查服务的 unit 文件(通常位于 /lib/systemd/system/ 或 /etc/systemd/system/),看是否存在类似 LimitNOFILE= 的行,如果有且值设为 4096,则需要将其修改为期望的更高值。

临时 shell 会话限制:

如果您使用 ulimit 命令在终端中临时调整了文件描述符限制,这只是影响当前 shell 会话,不会持久化到服务启动时的环境。要永久更改限制,应通过上述系统或用户配置文件进行。

内核限制:

虽然不太常见,但某些较老的内核版本或特定内核配置可能对最大文件描述符数量有硬性限制。确认您的内核版本是否支持您想要设置的较高值,并检查内核编译选项是否有相关限制。

目录
相关文章
|
14天前
|
Linux 应用服务中间件 Shell
linux系统服务二!
本文详细介绍了Linux系统的启动流程,包括CentOS 7的具体启动步骤,从BIOS自检到加载内核、启动systemd程序等。同时,文章还对比了CentOS 6和CentOS 7的启动流程,分析了启动过程中的耗时情况。接着,文章讲解了Linux的运行级别及其管理命令,systemd的基本概念、优势及常用命令,并提供了自定义systemd启动文件的示例。最后,文章介绍了单用户模式和救援模式的使用方法,包括如何找回忘记的密码和修复启动故障。
37 5
linux系统服务二!
|
14天前
|
Linux 应用服务中间件 Shell
linux系统服务!!!
本文详细介绍了Linux系统(以CentOS7为例)的启动流程,包括BIOS自检、读取MBR信息、加载Grub菜单、加载内核及驱动程序、启动systemd程序加载必要文件等五个主要步骤。同时,文章还对比了CentOS6和CentOS7的启动流程图,并分析了启动流程的耗时。此外,文中还讲解了Linux的运行级别、systemd的基本概念及其优势,以及如何使用systemd管理服务。最后,文章提供了单用户模式和救援模式的实战案例,帮助读者理解如何在系统启动出现问题时进行修复。
35 3
linux系统服务!!!
|
18天前
|
Linux 数据库
Linux服务如何实现服务器重启后的服务延迟自启动?
【10月更文挑战第25天】Linux服务如何实现服务器重启后的服务延迟自启动?
83 3
|
18天前
|
关系型数据库 MySQL Linux
Linux系统如何设置自启动服务在MySQL数据库启动后执行?
【10月更文挑战第25天】Linux系统如何设置自启动服务在MySQL数据库启动后执行?
64 3
|
1月前
|
Ubuntu Linux 网络安全
Linux中服务管理问题
【10月更文挑战第4天】
25 2
|
2月前
|
Docker 容器
14 response from daemon: open \\.\pipe\docker_engine_linux: The system cannot find the file speci
14 response from daemon: open \\.\pipe\docker_engine_linux: The system cannot find the file speci
35 1
|
1月前
|
应用服务中间件 Linux Shell
Linux 配置 Nginx 服务的详细步骤,绝对干货
Linux 配置 Nginx 服务的详细步骤,绝对干货
72 0
|
2月前
|
NoSQL Linux Redis
Linux Redis 服务设置开机自启动
【9月更文挑战第2天】在 Linux 系统中,可使用两种方法设置 Redis 开机自启动:一是通过创建 `redis.service` 文件并利用 systemd 进行管理,包括定义服务参数和启动脚本;二是编辑 `/etc/rc.local` 文件,在其中添加启动命令。推荐使用 systemd 方法,因为它更符合现代 Linux 系统的设计理念。设置完成后,可通过 `sudo systemctl status redis.service` 检查服务状态。
311 3
|
3月前
|
图形学 开发者 存储
超越基础教程:深度拆解Unity地形编辑器的每一个隐藏角落,让你的游戏世界既浩瀚无垠又细节满满——从新手到高手的全面技巧升级秘籍
【8月更文挑战第31天】Unity地形编辑器是游戏开发中的重要工具,可快速创建复杂多变的游戏环境。本文通过比较不同地形编辑技术,详细介绍如何利用其功能构建广阔且精细的游戏世界,并提供具体示例代码,展示从基础地形绘制到植被与纹理添加的全过程。通过学习这些技巧,开发者能显著提升游戏画面质量和玩家体验。
150 3
|
2月前
|
编解码 Linux 开发工具
Linux平台x86_64|aarch64架构RTMP推送|轻量级RTSP服务模块集成说明
支持x64_64架构、aarch64架构(需要glibc-2.21及以上版本的Linux系统, 需要libX11.so.6, 需要GLib–2.0, 需安装 libstdc++.so.6.0.21、GLIBCXX_3.4.21、 CXXABI_1.3.9)。