om du får fel ”för många öppna filer (24)” då din ansökan/kommando/script slår max öppen fil gräns tillåts av linux. Du måste öka den öppna filgränsen enligt nedan:
öka gränsen
per användargräns
Öppna fil: /etc/security/limits.conf
klistra in följande mot slutet:
* hard nofile 500000* soft nofile 500000root hard nofile 500000root soft nofile 500000
500000 är rättvist antal. Jag är inte säker på vad som är maxgräns men 999999 (sex-9) fungerade för mig en gång så långt jag minns.
när du har sparat filen kan du behöva logga ut och logga in igen.
Pam-gränser
jag läste på många ställen att ett extra steg är neede för gräns för att ändra för demonprocesser. Jag behövde inte följa ännu, men om ovanstående ändringar inte fungerar för dig, Du kan ge detta ett försök.
öppna /etc/pam.d/common-session
Lägg till följande rad:
session required pam_limits.so
systemomfattande gräns
Ställ in detta högre än användargränsen ovan.
öppna /etc/sysctl.conf
Lägg till följande:
fs.file-max = 2097152
kör:
sysctl -p
ovan kommer att öka ”totalt” antal filer som kan förbli öppna hela systemet.
verifiera nya gränser
använd följande kommando för att se maxgränsen för filbeskrivningar:
cat /proc/sys/fs/file-max
hård gräns
ulimit -Hn
Mjuk gräns
ulimit -Sn
om du är inloggad som root:
kontrollera gräns för andra användare
byt bara ut www-data
med linux användarnamn du vill kontrollera gränser för:
su - www-data -c 'ulimit -aHS' -s '/bin/bash'
kontrollera gränser för en pågående process:
hitta process-id (PID):
ps aux | grep process-name
Antag, XXX är PID, kör sedan följande kommandon för att kontrollera gränser:
cat /proc/XXX/limits