Die IEC-Applikation kann keine weiteren Datei-Handles öffnen
Wichtig
Bevor Sie das Limit für Datei-Handles auf Ihrem System ändern, sollten Sie dringend die Konsequenzen für alle Dienste auf Ihrem Linux-System bedenken. Wir empfehlen stattdessen die Ursache für das Leck zu finden.
Fehlerbehebung
Verlust des Lizenzstatus. Die WIBU-Lizenz wird nach einer bestimmten Zeit unterbrochen.
Neue Dateien können nicht geöffnet werden.
Das Standardverhalten von Linux-Prozessen ist, eine maximal zulässige Anzahl von offenen Datei-Handles zu erlauben. Wenn ein Prozess dieses Limit erreicht, können keine neuen Dateien mehr geöffnet werden.
Sie können den Grenzwert Ihres Systems mit dem Konsolenbefehl überprüfen:
ulimit -n
Jeder Prozess in Linux hat eine Prozess-ID und der Kernel stellt detaillierte Informationen über jeden Prozess in seinem Datei-/Ordnersystem procfs
bereit. Somit können Sie einfach die Anzahl der Datei-Handles ermitteln, die ein Prozess zu einem bestimmten Zeitpunkt hat.
Finden Sie die Prozess-ID der CODESYS-Laufzeitumgebung
Sie können Standard-Linux-Tools verwenden, um die Prozess-ID der CODESYS-Laufzeitumgebung zu finden:
htop
zeigt normalerweise die Prozess-ID in der erste Spalte (PID) an.top
zeigt normalerweise die Prozess-ID in der erste Spalte (PID) an.Sie können die Befehle
ps
undgrep
für eine schnelle Suche kombinieren:ps aux | grep codesyscontrol
Notieren Sie sich die Prozess-ID und verwenden Sie sie in den folgenden Befehlen, in denen der Platzhalter
<pid>
verwendet wirdÜberprüfung und Überwachung der Datei-Handles
Listen Sie nun die Einträge im
procfs
, um die Datei-Handles des Laufzeitprozesses zu sehen.sudo ls -la /proc/<pid>/fd/
Beispiel 4. Dies könnte folgendermaßen aussehenWenn es sich bei den Datei-Handles um „echte“ Dateien handelt, können Sie den Pfad sehen. Andere Datei-Handles könnten Sockets oder ähnliches sein.
Wenn Sie diesen Befehl mehrmals hintereinander ausführen, können Sie beobachten, ob Sie eine zunehmende Anzahl von Datei-Handles haben und welche Dateien geöffnet sind.
Mit dem Befehl
watch
wird eine Ansicht erstellt, die sich alle 2 Sekunden aktualisiert.watch sudo ls -la /proc/<pid>/fd/
Mit diesen Maßnahmen können Sie die geöffneten Handles überwachen und somit herausfinden, welche Dateien an dem Dateihandle-Leck beteiligt sein könnten.