Possible cause of Vue.js hot reload or LiveReload not working and failed file watchers on IDE
Listen uses inotify by default on Linux to monitor directories for changes. It's not uncommon to encounter a system limit on the number of files you can monitor. For example, Ubuntu Lucid's (64bit) inotify limit is set to 8192.
The current default is 8192 (see fs/notify/inotify/inotify_user.c in the kernel source), you can verify this by printing the file to stdout:
cat /proc/sys/fs/inotify/max_user_watches 8192
You can bump the number up, for example, doubling this to 16384, using:
echo 16384 | sudo tee /proc/sys/fs/inotify/max_user_watches
bear in mind that inotify watches do consume memory, I think it's around 160 bytes per watch on 64 bit systems.
To set this permanently, add an entry to /etc/sysctl.conf, for example:
echo fs.inotify.max_user_watches=16384 | sudo tee -a /etc/sysctl.conf sudo sysctl -p
..or manually edit /etc/sysctl.conf (you need root privileges to update it) and then run
sudo sysctl -p
Top comments (7)
You what its worth the inotify number is much higher in Ubuntu/POP_OS 19.10 (64bit):
Thanks for the help! Question: Is there any real downside to continuing to increase this number? Would it not be better to clear the watch list at some point? Or is that not possible? Thanks again!
There is no downside, or to be more precise it depends on the program using these watchers, however there are limits explained in this unix stack exchange answer
is there any downside for making it permanent in respect to your system performance?
No downside from my experience, even with much higher number.
Please mention if we need to restart the computer after the change.
This sets the number for the current shell session, and as the config file is written, so it will also work on the next boot. So no need to reboot.