sysctl
でfs.inotify.max_user_watches
を設定する最良の方法がわかりません。実際、ここで何が起こっているのかは、特定のプロセスで監視できるファイルの数を設定する必要があることを除いて、あまりわかりません。
次のコマンドを実行すると、ユーザーの最大数を確認できると思います。
cat /proc/sys/fs/inotify/max_user_watches
私の理解では、一部の人々は/proc/sys/fs/inotify/max_user_watches
をエディタで開いてこれを追加することで/etc/sysctl.conf
を変更することを提案しています。
fs.inotify.max_user_watches=524288
次に、Sudo sysctl -p
を実行して、おそらくファイルに加えられた変更を処理します。
他の人はこのようなコマンドを実行することを提案します:
Sudo sysctl -w fs.inotify.max_user_instances=1024
Sudo sysctl -w fs.inotify.max_user_watches=12288
-w
は書き込みを表しますが、何がどこに書き込まれているのですか?このコマンドが/proc/.../max_user_watches
を変更するだけですか?
上で概説した2つのアプローチのどちらが最適ですか? 524288と12288は異なる数値であることを理解していますが、-p
と-w
を実行した場合の効果の違いがわかりません。
sysctl -w
は、カーネルパラメータ値を/proc/sys
の下の対応するキーに書き込みます。
Sudo sysctl -w fs.inotify.max_user_watches=12288
12288
を/proc/sys/fs/inotify/max_user_watches
に書き込みます。 (それは同等ではありません、それはまさにそれです;興味のある読者はそれを自分で見るためにstrace
することができます。)
sysctl -p
/etc/sysctl.conf
(デフォルト)、または-p
の後に指定されたファイルから設定をファイルからロードします。
両方のアプローチの違いは、それらが書き込むパラメーターと値のさまざまなソースを超えて、-w
は次の再起動までパラメーターを変更するだけですが、/etc/sysctl.conf
に保存された値は、システムが起動します。私の通常のアプローチは-w
を使用して値をテストすることです。その後、新しい設定に問題がないことを確認したら、/etc/sysctl.conf
または/etc/sysctl.d
の下のファイルに書き込みます(通常は/etc/sysctl.d/local.conf
)。
詳細については、 sysctl
および sysctl.conf
のマニュアルページ(システム上のman sysctl
およびman sysctl.conf
)を参照してください。