LoginSignup
1
3

More than 3 years have passed since last update.

Debian で Dropbox が動かない。Please run "echo fs.inotify.max_user_watches=100000…" 云々と言われた

Last updated at Posted at 2016-03-27

TL;DR

Debian や、Ubuntu ベースである KDE neon などで Dropbox の同期がうまくいかない場合で、CLI から dropbox start を実行した際に、下記のようなエラーメッセージが表示される場合の対処法について記述する。

Unable to monitor entire Dropbox folder hierarchy. Please run "echo fs.inotify.max_user_watches=100000 | sudo tee -a /etc/sysctl.conf; sudo sysctl -p" and restart Dropbox to fix the problem.

  1. /etc/sysctl.d/ 以下に、拡張子が .conf のファイルを作成し、その中に fs.inotify.max_user_watches=100000 と記述する。
  2. sudo sysctl --system を実行する
  3. Dropbox を再起動する。

コマンドで表現すると下記のようになる。

$ echo "fs.inotify.max_user_watches=100000" | sudo tee /etc/sysctl.d/dropbox.conf
$ sudo sysctl --system
$ dropbox stop
$ dropbox start

詳細

Debian に Dropbox をインストールしたのだが、どうも同期がうまくいっていないように見える。
※2020/09/20追記: Ubuntu ベースである KDE neon でも同様の問題が発生した。Ubuntu や、Red Hat 系その他のディストリビューションでも同様の状況が発生しているのかもしれない。

一旦停止して再度コンソールから起動してみた。

$ dropbox stop
Dropbox daemon stopped.
$ dropbox start
Starting Dropbox...Done!

Unable to monitor entire Dropbox folder hierarchy. Please run "echo fs.inotify.max_user_watches=100000 | sudo tee -a /etc/sysctl.conf; sudo sysctl -p" and restart Dropbox to fix the problem.

出力されたエラーメッセージを見る限り、/etc/sysctl.conf に fs.inotify.max_user_watches=100000 という行を追加した後、sudo sysctl -p を実行せよ、とある。

まず、fs.inotify.max_user_watchesinotify なるライブラリーの設定のようだ。man を見ると、これは はファイルやディレクトリーの変更を監視するためのライブラリー。恐らく Dropbox はこれを用いてファイルの変更を検知しているのだろう。

fs.inotify.max_user_watches は、どうやら監視対象にできるファイル数の上限を示しているようだ。つまり、Dropbox に入っているファイル数が多すぎる、ということか。
現在の値は

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

で見れるようで、私の環境では 8192 だった。

/etc/sysctl.conf はカーネルパラメーターを記述するためのファイルで、ここに

fs.inotify.max_user_watches=100000

と記述することで、監視対象にできるファイル数の上限を100,000に設定できる。
ファイルを編集した後、sudo sysctl -p を実行して /etc/sysctl.conf を読み込み直すことができる。その後 Dropbox を再起動すれば問題が解消しているはずだ。

尚、個人的には /etc/sysctl.conf を直接編集せず、/etc/sysctl.d/ 以下に別途 *.conf ファイルを作成し、上記の設定を記述する方が好みである。(TL;DR に記述したコマンドでもそのようにしてある。)
その場合、sudo sysctl -p ではなく sudo sysctl --system を実行しなければ設定が読み込まれないため注意されたい。

尚、Linux に不慣れで、sysctl -psysctl --system を実行することに不安があれば、/etc/sysctl.conf または /etc/sysctl.d/*.conf を編集し保存した後、単に OS を再起動しても良い。

1
3
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3