← retour aux snippets

ulimit: augmenter nofile sans surprises

Augmenter la limite de descripteurs ouverts pour un process, temporairement et de façon persistante.

bash process #ulimit#limits#nofile

objectif

Éviter les erreurs “Too many open files” en augmentant les limites souples/durables.

code minimal

# shell courant
ulimit -n 1048576

utilisation

# pour un service systemd (Override)
sudo systemctl edit mon.service <<'EOF'
[Service]
LimitNOFILE=1048576
EOF
sudo systemctl restart mon.service

# vérifier dans le process
cat /proc/$(pgrep -xo mon-binaire)/limits | awk '/open files/ {print}'

variante(s) utile(s)

# session utilisateur via /etc/security/limits.d/app.conf (PAM requis)
echo 'app soft nofile 1048576' | sudo tee /etc/security/limits.d/app.conf
echo 'app hard nofile 1048576' | sudo tee -a /etc/security/limits.d/app.conf

notes

  • les limites via PAM s’appliquent aux sessions de connexion; systemd a sa propre directive LimitNOFILE=.
  • vérifiez aussi fs.file-max si nécessaire (sysctl).