Oplossing:verhoog de limiet
Linux-systemen stellen limieten aan het aantal geopende bestanden waartoe een gebruiker tegelijkertijd toegang heeft. De fout ‘te veel geopende bestanden’ treedt op wanneer het aantal geopende bestanden deze limieten overschrijdt. Om dit probleem op te lossen, verhoogt u de limiet voor geopende bestanden.
Bewerk het corresponderende `/etc/security/limits.conf` bestand, afhankelijk van of u de wijziging globaal of op een specifieke gebruiker probeert toe te passen.
Als u probeert de limiet voor elke gebruiker te verhogen, bewerkt u `/etc/security/limits.conf`:
```
sudo nano /etc/security/limits.conf
```
Om de limiet voor een bepaalde gebruiker met de naam “gebruikersnaam” te wijzigen, bewerkt u het corresponderende `/etc/security/limits.d` bestand:
```
sudo nano /etc/security/limits.d/gebruikersnaam.conf
```
Zoek en bewerk in het betreffende bestand de “nofile”-parameters om de nieuwe limieten in te stellen:
```
* zacht nofile 65535
* harde nofile 65535
```
Dit is wat deze parameters doen:
- “zacht” stelt een zachte limiet in die in bepaalde omstandigheden tijdelijk kan worden overschreden.
- “hard” stelt een harde grens die niet kan worden overschreden.
De numerieke waarde (“65535” in het voorbeeld) geeft het gewenste maximale aantal geopende bestanden aan.
Nadat u de wijzigingen heeft opgeslagen en de editor heeft afgesloten, voert u de volgende opdrachten uit om de nieuwe limieten toe te passen. (Vervang “gebruikersnaam” door uw doelgebruiker als u een specifieke gebruiker wijzigt):
```
sudo ulimit -n 65535 (voor de huidige sessie)
```
```
sudo sysctl -w fs.file-max=65535 (voor elke sessie en daarna)
```
Controleer de wijzigingen aan de bestandslimiet met het commando:
```
ulimit -n
```
Als u de verhoogde limiet als uitvoer krijgt, is de wijziging van kracht en zou de fout ‘te veel geopende bestanden’ moeten zijn opgelost.
Alternatieve oplossing:sluit ongebruikte bestanden
Als het verhogen van de bestandslimiet onpraktisch is, overweeg dan om onnodige geopende bestanden te sluiten om te voorkomen dat de limiet wordt bereikt. Controleer of er onnodige achtergrondprocessen of toepassingen zijn die bestandsdescriptors gebruiken.
Voer de volgende opdracht uit om een overzicht te krijgen van geopende bestandsingangen:
```
lsof-Fn | grep verwijderd
```
Zoek naar onnodige handvatten en beëindig de bijbehorende processen om ze vrij te geven. |