Řešení 1:
systemd zcela ignoruje /etc/security/limits*. Pokud používáte RPM, které při aktualizaci automaticky zmáčkne svůj servisní soubor systemd, budete chtít podat žádost o PR a požádat je, aby tyto soubory označili jako „noreplace“
Je třeba aktualizovat soubor .service /usr/lib/systemd/system/<servicename>.service
[Unit]
Description=Some Daemon
After=syslog.target network.target
[Service]
Type=notify
LimitNOFILE=49152
ExecStart=/usr/sbin/somedaemon
[Install]
WantedBy=multi-user.target
nemocný poukázal na to, že můžete také přepsat hodnoty nainstalované v balíčku (najdete je ve výše uvedeném souboru) jejich přidáním do /etc/systemd/system/<servicename>.d/override.conf
[Service]
LimitNOFILE=49152
To poskytuje další bonus nastavení specifických pro systém, u kterých nehrozí přepsání při aktualizaci balíčku.
Poté zadejte příkaz:systemctl daemon-reload
Řešení 2:
Konfigurační soubory v /usr/lib/systemd/system/
by neměl upravovat ručně a je naprosto normální (pokud se to neočekává), že rpm při aktualizaci aktualizuje soubory, které spravuje v tomto adresáři.
Jak @sickill a @Cherif KAOUA zdůraznili v komentářích [https://stackoverflow.com/questions/27849331/how-to-set-nginx-max-open-files/36423859#36423859], měli byste přidat vlastní konfiguraci včetně limitů do /etc/systemd/system/<servicename>.service.d/override.conf
. např.:
[Service]
LimitNOFILE=65536
Poté znovu načtěte konfiguraci démona systemctl:
systemctl daemon-reload
RHEL má ve své příručce správce systému skvělou sekci o systemd, která mimo jiné uvádí, kde by měly být umístěny soubory jednotek systemd a jak přepsat výchozí hodnoty.