Afficher/cacher Sommaire
Afficher le contenu d’un répertoire en temps réel
Cet article est consacré à un problème agaçant et que j’ai vu apparaître de manière plus ou moins aléatoire sur toutes sortes de distributions Linux, indépendamment de l’environnement de bureau utilisé. Prenons un cas de figure concret pour décrire le problème en question.
- J’ouvre un navigateur de fichiers comme Dolphin, Thunar, Caja, etc.
- Je télécharge une archive compressée vers le répertoire courant.
- À première vue, le nouveau fichier n’apparaît pas dans la liste.
- J’appuie sur F5 pour rafraîchir l’affichage, et j’aperçois mon fichier.
- J’extrais l’archive vers le répertoire courant.
- Même problème, le contenu de l’archive n’apparaît pas.
- J’appuie encore sur F5 pour rafraîchir l’affichage, et le problème est réglé.
Il suffit de rafraîchir manuellement l’affichage du répertoire pour accéder aux nouveaux fichiers.
Après investigation, ce comportement est lié à inotify, un mécanisme du noyau Linux qui fournit des notifications concernant le système de fichiers.
La valeur max_user_watches définit la limite système du nombre de fichiers dont on surveille les changements en temps réel.
Sur les systèmes Red Hat Enterprise Linux et CentOS, cette valeur est trop basse.
# cat /proc/sys/fs/inotify/max_user_watches
8192
On peut augmenter cette valeur “à chaud”.
# sysctl fs.inotify.max_user_watches = 32768
# sysctl -p
Voir si cela a régle le problème d’affichage.
- J’ouvre le navigateur de fichiers Thunar.
- Je télécharge une archive compressée vers le répertoire courant.
- Le fichier s’affiche en temps réel.
- J’extrais l’archive vers le répertoire courant.
- Le répertoire résultant s’affiche directement.
- Le problème est résolu.
Rendre la modification persistante en créant un fichier /etc/sysctl.d/inotify.conf
# Monitor directories for change
fs.inotify.max_user_watches = 32768
Après avoir édité le fichier il faut recharger la configuration avec sysctl :
# sysctl --system