Skip to main content

L'application IEC ne peut plus ouvrir de descripteurs de fichiers.

Important

Avant de modifier la limite des descripteurs de fichiers sur votre système, vous devez d'urgence envisager les conséquences pour tous les services de votre système Linux. Nous vous recommandons plutôt de rechercher la cause de la fuite.

Résolution des problèmes

. Les effets suivants peuvent être provoqués par une fuite de descripteur de fichier :
  • Perte du statut de licence. La licence WIBU est rompue après un certain temps.

  • Les nouveaux fichiers ne peuvent pas être ouverts.

Le comportement par défaut des processus Linux est d'autoriser un nombre maximum de descripteurs de fichiers ouverts. Lorsqu'un processus atteint cette limite, aucun nouveau fichier ne peut être ouvert.

Vous pouvez vérifier la valeur limite de votre système à l'aide de la commande de console :

ulimit -n

Chaque processus sous Linux possède un identifiant de processus et le noyau fournit des informations détaillées sur chaque processus de son système de fichiers/dossiers procfs. Cela vous permet de déterminer facilement le nombre de descripteurs de fichiers qu'un processus possède à un moment donné.

. Nous vous recommandons de suivre les étapes suivantes pour étudier une éventuelle fuite de descripteur de fichier :
  1. Trouvez l'ID de processus du CODESYS environnement d'exécution.

    Vous pouvez utiliser les outils Linux standard pour trouver l'ID de processus du CODESYS environnement d'exécution :

    • htop affiche normalement l'identifiant du processus dans la première colonne (PID).

    • top affiche normalement l'identifiant du processus dans la première colonne (PID).

    • Vous pouvez combiner les ps et grep commandes pour une recherche rapide :

      ps aux | grep codesyscontrol

    Notez l'identifiant du processus et utilisez-le dans les commandes suivantes où le caractère générique <pid> est utilisé.

  2. Vérifiez et surveillez les descripteurs de fichiers.

    Répertoriez maintenant les entrées dans procfs pour voir les descripteurs de fichiers du processus d'exécution.

    sudo ls -la /proc/<pid>/fd/

    Exemple 4. Cela peut se présenter comme suit
    _rtsl_img_iec_filehandle.png


    • Si les descripteurs de fichiers sont de « vrais » fichiers, vous pouvez voir le chemin. Les autres descripteurs de fichiers peuvent être des sockets ou similaires.

    • Si vous exécutez cette commande plusieurs fois l'une après l'autre, vous pouvez observer si vous avez un nombre croissant de descripteurs de fichiers et quels fichiers sont ouverts.

    • Le watch La commande crée une vue qui est mise à jour toutes les 2 secondes.

      watch sudo ls -la /proc/<pid>/fd/

Ces actions peuvent vous aider à surveiller les descripteurs ouverts et ainsi à identifier les fichiers susceptibles d'être impliqués dans la fuite des descripteurs de fichiers.