プロセスが私が設定した新しいオープンファイル構成を使用していませんか?

プロセスが私が設定した新しいオープンファイル構成を使用していませんか?

ユーザーとして実行されているプロセスがあり、goldenそのユーザーが開始したすべてのプロセスがその設定を使用する必要があるように、そのユーザーの開かれたファイル制限を増やそうとします。制限を次のファイルに変更しましたが、変更は適用されませんでした。

/etc/security/limits.conf:

*       soft    nofile  65535
*       hard    nofile  100000

*上記のようにワイルドカードの制限を変更して、すべてのユーザーの設定を変更しました。今、私はゴールドユーザーとしてプロセスを起動し、catコマンドで実行しましたが、8092開かれたファイルとして使用されることを確認しましたが、なぜ変更が適用されないのかわかりません。

golden@machineA:~$ cat /proc/1442/limits
Limit                     Soft Limit           Hard Limit           Units
Max cpu time              unlimited            unlimited            seconds
Max file size             unlimited            unlimited            bytes
Max data size             unlimited            unlimited            bytes
Max stack size            8388608              unlimited            bytes
Max core file size        unlimited            unlimited            bytes
Max resident set          unlimited            unlimited            bytes
Max processes             483036               483036               processes
Max open files            8092                 8092                 files
Max locked memory         65536                65536                bytes
Max address space         unlimited            unlimited            bytes
Max file locks            unlimited            unlimited            locks
Max pending signals       483036               483036               signals
Max msgqueue size         819200               819200               bytes
Max nice priority         0                    0
Max realtime priority     0                    0
Max realtime timeout      unlimited            unlimited            us

Ubuntu 14.04ボックスを使用しています。ここで何が起こっているのかご存知ですか?goldenユーザーが開始したすべてのプロセスが新しいオープンファイル構成を使用できるようにするにはどうすればよいですか。 8092は値をオーバーライドしないため、どこかにハードコードされているようです。

cat /proc/sys/fs/file-max
6145946

ベストアンサー1

/etc/limitsログイン時に設定されます。ここで行った変更は、プロセスの開始時ではなく、ユーザーがログインしたときに適用されます。プロセスを開始するための構成はありません。プロセスは親プロセスの制限を継承します。

プロセスは常に限界を下げることを選択できます。ログインセッションを開始し、ulimit -aシェルで実行して上限を確認し、プロセスを実行するとその殻に、プロセスの限界は最終的に減少します。これは、プロセスの制限が低くなることを意味します。その場合は、プログラム構成を調べてこれを防ぐことができるかどうかを確認する必要があります。

おすすめ記事