限制已configuration但不适用于守护进程

在我的CentOS 7上,我使用cat /proc/<pid>/limits来查看实际极限设置。 我得到了确认,这个方法在这里是完全准确的,因为我在MySQL上使用它,它不能转储一个特定的数据库,其中> 8000表。 如果通过使用prlimit将其设置为10000,则转储将成功完成。

现在,我想避免使用prlimit,所以我configuration了/etc/security/limits.conf文件来匹配我的需要,如果我运行一个与用户(mysql)bash,我可以看到正确的限制值configuration当运行ulimit -a

问题是由mysql用户运行的mysqld进程仍然被设置为默认值(这里是1024),这导致在转储数据库时失败。 我唯一的解决scheme是在运行时运行prlimit,但我想进行什么是缺less的,所以我的进程尊重限制configuration在启动时。

最终发现问题:限制由Systemd处理,我必须创build文件/etc/systemd/system/mariadb.service.d/limits.conf与内容:

 [Service] LimitNOFILE=10000 

所以,主要的事情要记住:systemd根本不关心/ etc / security / limits *文件。