Skip to content

Instantly share code, notes, and snippets.

@coenraadhuman
Last active April 23, 2024 09:09
Show Gist options
  • Star 11 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save coenraadhuman/fa7345e95a9b4dea851dbe9e8f011470 to your computer and use it in GitHub Desktop.
Save coenraadhuman/fa7345e95a9b4dea851dbe9e8f011470 to your computer and use it in GitHub Desktop.
Increasing the amount of inotify watchers

Increasing the amount of inotify watchers

Take note this is my personal edited version and the command related to Arch has been changed to work on my Arch system.

Increase inotify watchers

If you are not interested in the technical details and only want to get Listen to work:

  • If you are running Debian, RedHat, or another similar Linux distribution, run the following in a terminal:
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
  • If you are running ArchLinux, run the following command instead (see here for why) and note their is normally nothing in 50-max_user_watches.conf:
sudo cp /etc/sysctl.d/50-max_user_watches.conf /etc/sysctl.d/50-max_user_watches.conf.bac
echo fs.inotify.max_user_watches=524288 > /etc/sysctl.d/50-max_user_watches.conf && sudo sysctl --system

Then paste it in your terminal and press on enter to run it.

The technical details

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.

You can get your current inotify file watch limit by executing:

$ cat /proc/sys/fs/inotify/max_user_watches

When this limit is not enough to monitor all files inside a directory, the limit must be increased for Listen to work properly.

You can set a new limit temporary with:

$ sudo sysctl fs.inotify.max_user_watches=524288
$ sudo sysctl -p

If you like to make your limit permanent, use:

$ echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf
$ sudo sysctl -p

You may also need to pay attention to the values of max_queued_events and max_user_instances if Listen keeps on complaining.

More info

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment