在重新启动后,inotify/max_user_watches的值会重置;如何永久更改它?

一些我正在使用的软件需要在/proc/sys/fs/inotify/max_user_watches中设置一个高于默认值的数值。我可以通过文本编辑器或终端修改这个数值,而且在一段时间内一切都正常。然而,在重新启动电脑之后(不仅仅是注销和重新登录,这种情况下一切正常),这个数值会重置为8192。
为什么会发生这种情况,我该如何使更改永久生效?

P.S. 我猜测我观察到的行为在Ubuntu上是默认发生的,但我不确定这是真的 - 我只在自己的机器上进行了测试。如果我错了,那么这将成为一个绝望的问题,只有当有人能猜出我可能做过或安装过什么奇怪的东西,才会导致max_user_watches值在重新启动时重置为8192。如果是这种情况,我向您道歉! - Mark Amery
2个回答

在Ubuntu 16.04上,以下方法对我有效...
echo "fs.inotify.max_user_watches=524288" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

524288是我正在使用的高于默认值的数字。第二个命令是使其在不重启的情况下生效。

此外,这里有一个类似问题的链接,其中包含一些很好的答案,特别是来自用户3086182的第二个答案对我很有帮助。

kernel-inotify-watch-limit-reached


从:/usr/lib/sysctl.d/50-default.conf

要覆盖此文件中的设置,请在/etc目录下创建一个本地文件(例如/etc/sysctl.d/90-override.conf),并在其中放置任何赋值。

因此,创建文件:nano /etc/sysctl.d/90-override.conf
然后将其填充为:fs.inotify.max_user_watches=65536

当您重新启动服务器时,将使用此文件来填充:/proc/sys/fs/inotify/max_user_watches

因此,无需编辑/proc/sys/fs/inotify/max_user_watches。一旦您按照上述步骤操作,可以重新启动服务器以使新设置生效。


像个男人一样!我认为这是最好的方式。 - contributorpw
对我来说,接受的答案是 - SandroMarques