Je ne comprends pas la meilleure façon de définir fs.inotify.max_user_watches
avec sysctl
. En fait, je ne comprends pas grand-chose de ce qui se passe ici, à part le fait que je dois définir le nombre de fichiers pouvant être surveillés par un processus particulier.
Je crois que je peux voir le nombre maximum d'utilisateurs en exécutant cette commande:
cat /proc/sys/fs/inotify/max_user_watches
Ma compréhension est que certaines personnes suggèrent de changer /proc/sys/fs/inotify/max_user_watches
en ouvrant /etc/sysctl.conf
dans un éditeur et en y ajoutant:
fs.inotify.max_user_watches=524288
Exécutez ensuite Sudo sysctl -p
pour - vraisemblablement - traiter les modifications apportées au fichier.
D'autres suggèrent d'exécuter des commandes comme celle-ci:
Sudo sysctl -w fs.inotify.max_user_instances=1024
Sudo sysctl -w fs.inotify.max_user_watches=12288
Je le sais -w
signifie écriture, mais qu'est-ce qui est écrit et où? Est-ce juste que cette commande change /proc/.../max_user_watches
?
Laquelle des deux approches décrites ci-dessus est la meilleure? Je comprends que 524288 et 12288 sont des nombres différents, mais je ne comprends pas la différence entre l'effet de l'exécution de -p
et -w
.
sysctl -w
écrit les valeurs des paramètres du noyau dans les clés correspondantes sous /proc/sys
:
Sudo sysctl -w fs.inotify.max_user_watches=12288
écrit 12288
à /proc/sys/fs/inotify/max_user_watches
. (Ce n'est pas équivalent, c'est exactement cela; les lecteurs intéressés peuvent strace
le voir par eux-mêmes.)
sysctl -p
charge les paramètres d'un fichier, /etc/sysctl.conf
(par défaut), ou tout autre fichier spécifié après -p
.
La différence entre les deux approches, au-delà des différentes sources des paramètres et des valeurs qu'elles écrivent, est que -w
ne modifie les paramètres que jusqu'au prochain redémarrage, tandis que les valeurs stockées dans /etc/sysctl.conf
sera appliqué à nouveau à chaque démarrage du système. Mon approche habituelle consiste à utiliser -w
pour tester les valeurs, puis une fois que je suis sûr que les nouveaux paramètres sont OK, écrivez-les dans /etc/sysctl.conf
ou un fichier sous /etc/sysctl.d
(d'habitude /etc/sysctl.d/local.conf
).
Voir sysctl
et sysctl.conf
pages de manuel (man sysctl
et man sysctl.conf
sur votre système) pour plus de détails.