web-dev-qa-db-ja.com

特定のプロセスに対して「最大オープンファイル数」のソフト制限とハード制限はどのように設定されますか?

cat /proc/<pid>/limitsコマンドを使用して最大オープンファイルのハード制限とソフト制限を確認しましたが、この値がどのように設定され、増減できるかを知りたいですか?

この値はいくつかの構成ファイルで設定されていますか?

ulimitコマンドを試しましたが、特定のプロセスの制限を設定するのに役立ちません。

# ulimit -n 2048

しかし、それでも1024が表示されています

# cat /proc/<pid>/limits
..
Max open files            1024                 4096                 files
..

同様の質問がされることは知っていますが、これ以上の答えは見つかりません。

4
Gaurav KS

util-linuxパッケージがインストールされている場合は、prlimitコマンドを使用して特定のプロセスにハード制限とソフト制限を設定します。コマンドcommandに対して、開いているファイルの最大数のソフト制限とハード制限をそれぞれ10と20に設定するには、次のコマンドを実行します。

prlimit -n10:20 command

コマンドの引数も提供できます。

prlimit -n10:20 command arg1 arg2 ...

詳細については、man prlimitを参照してください。

注:他の多くのUnixコマンドとは異なり、prlimitはオプションと引数の間にスペースを入れません。したがって、-n10:20は機能しますが、-n 10:20は機能しません。

4
John1024

デーモンについて話している場合は、initスクリプトでulimt -n $your_numberを指定できます。すでに実行中のプロセスで再起動できない場合は、prlimitJohn1024の提案のように を使用します。

1
t2d