Solution 1 :
systemed ignore complètement /etc/security/limits*. Si vous utilisez un RPM qui écrase automatiquement son fichier de service systemd lors de la mise à jour, vous souhaiterez déposer un PR pour leur demander de marquer ces fichiers comme "noreplace"
Vous devez mettre à jour le fichier .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
maladie a souligné que vous pouvez également remplacer les valeurs installées par le package (trouvées dans le fichier ci-dessus) en les ajoutant à /etc/systemd/system/<servicename>.d/override.conf
[Service]
LimitNOFILE=49152
Cela offre l'avantage supplémentaire de paramètres spécifiques au système qui ne risquent pas d'être écrasés lors de la mise à jour du package.
Lancez ensuite la commande :systemctl daemon-reload
Solution 2 :
Fichiers de configuration en /usr/lib/systemd/system/
ne devrait pas être édité à la main et il est parfaitement normal (sinon prévu) qu'un rpm mette à jour les fichiers qu'il gère dans ce répertoire lors de la mise à jour.
Comme @sickill et @Cherif KAOUA l'ont souligné dans les commentaires [https://stackoverflow.com/questions/27849331/how-to-set-nginx-max-open-files/36423859#36423859], vous devez ajouter une configuration personnalisée, y compris des limites dans /etc/systemd/system/<servicename>.service.d/override.conf
. ex :
[Service]
LimitNOFILE=65536
Rechargez ensuite la configuration du démon systemctl :
systemctl daemon-reload
RHEL a une excellente section sur systemd dans son Guide de l'administrateur système qui, entre autres, répertorie où les fichiers d'unité systemd doivent être situés et comment remplacer les valeurs par défaut.