再起動せずにlimits.confを変更して適用する


15

/etc/security/limits.conf開いているファイルの数を増やすための行を追加しました。

*    hard nofile 4096
root hard nofile 16384

ただし、実行ulimit -nすると1024がデフォルト値になります。ログアウトしてログインしましたが、まだ1024が表示されます。変更を適用するにはどうすればよいですか?

回答:


8

あなたが使用している場合bashulimit -n唯一のソフトリミットを表示します。ハード制限を取得するには、行う必要がありますulimit -Hn

私のシステムでは、これが表示されます:

$ ulimit -n
1024
$ ulimit -Hn
4096

16

ulimitコマンドによる変更:

$ ulimit -n 4096
$ ulimit -Hn 16384

現在のユーザーとセッションにのみ適用されます。永続的にするには/etc/security/limits.conf、制限を追加して変更する必要があります。

* soft nofile 4096
* hard nofile 16384

ただし、ユーザーにはワイルドカード*は適用されませんrootそのためには、明示的に述べる必要があります。

* soft nofile 4096
* hard nofile 16384
root soft nofile 4096
root hard nofile 16384

これらの制限は、再起動後に適用さます。

再起動せずに変更を適用する場合/etc/pam.d/common-sessionは、ファイルの最後に次の行を追加して変更します。

session required pam_limits.so

次回ログインすると、更新された制限が表示されるはずです。それらを確認できます(ソフト制限とハード制限)。

$ ulimit -a
$ ulimit -Ha

2
このアプローチには問題がありましたが、本当に奇妙でした。Ubuntu 14を使用pam_limits.soしており、で有効にしてい/etc/pam.d/common-sessionます。私はで構成されている/etc/security/limits.confため、ハードとソフトリミット持っているxは、ユーザnofile64000がsudo -u x、その後ulimit -a変更が適用されなかったことを私に示しています。私はそれを認識しsusudo異なるPAM構成を持っているので、それを適切に機能させるには、pam_limits.soin を有効にする必要がありました/etc/pam.d/common-session-noninteractive。ユースケースが何であるか疑問に思っている場合は、ansibleとsudoを使用してユーザーを変更します。
hahcho

1
何らかの理由で、機能させる/etc/pam.d/common-session-noninteractiveために追加する必要がありました。
Sumit
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.