Lösung 1:
systemd ignoriert vollständig /etc/security/limits*. Wenn Sie ein RPM verwenden, das seine systemd-Dienstdatei beim Update automatisch komprimiert, sollten Sie eine PR einreichen, um sie zu bitten, diese Dateien als „noreplace“ zu markieren
Sie müssen die .service-Datei /usr/lib/systemd/system/<servicename>.service
aktualisieren
[Unit]
Description=Some Daemon
After=syslog.target network.target
[Service]
Type=notify
LimitNOFILE=49152
ExecStart=/usr/sbin/somedaemon
[Install]
WantedBy=multi-user.target
krank wies darauf hin, dass Sie auch die vom Paket installierten Werte (in der obigen Datei gefunden) überschreiben können, indem Sie sie zu /etc/systemd/system/<servicename>.d/override.conf
hinzufügen
[Service]
LimitNOFILE=49152
Dies bietet den zusätzlichen Bonus systemspezifischer Einstellungen, die nicht Gefahr laufen, bei Paketaktualisierungen überschrieben zu werden.
Geben Sie dann den Befehl ein:systemctl daemon-reload
Lösung 2:
Konfigurationsdateien in /usr/lib/systemd/system/
sollte nicht von Hand editiert werden und es ist völlig normal (wenn nicht erwartet), dass ein RPM Dateien aktualisiert, die es in diesem Verzeichnis bei update verwaltet.
Wie @sickill und @Cherif KAOUA in den Kommentaren [https://stackoverflow.com/questions/27849331/how-to-set-nginx-max-open-files/36423859#36423859] betonten, sollten Sie benutzerdefinierte Konfigurationen einschließlich Limits hinzufügen /etc/systemd/system/<servicename>.service.d/override.conf
. zB:
[Service]
LimitNOFILE=65536
Laden Sie dann die Systemctl-Daemon-Konfiguration neu:
systemctl daemon-reload
RHEL hat einen großartigen Abschnitt über systemd in seinem System Administrator Guide, der unter anderem auflistet, wo sich systemd Unit-Dateien befinden sollten und wie man Standardwerte überschreibt.