/etc/security/limits.confの変更には再起動が必要ですか?


144

変更/etc/security/limits.confを有効にするには再起動が必要ですか?

に次の制限を設定するスクリプトがある場合/etc/security/limits.conf、これらの制限が有効になる前にシステムを再起動する必要がありますか?

* hard nofile 94000
* soft nofile 94000
* hard nproc 64000
* soft nproc 64000

2
ログアウトは十分なはずです
UVV

ファイル/etc/security/limits.d/90-nproc.confを編集し、システムを再起動します

回答:


108

いいえ。ただし、アクティブなセッションウィンドウをすべて閉じる必要があります。彼らはまだ古い値を覚えています。つまり、ログアウトしてから再度ログインします。すべてのリモートの新しいセッションまたはローカルのセキュアシェルは、制限の変更の影響を受けます


17
私は、ログインを持っていないユーザーに対して制限を設定する場合のように、私は、設定したい場合nofileに制限を94000するためにmongodb、ユーザ?再起動せずにどうすればよいですか?mongodbサービスを再起動するだけでいいですか?
アレクセイマグラ14年

2
@AlexejMagura prlimitコマンドを使用して、実行中のプロセスのrlimitsを変更できます。
ブラッチリー14年

7
@Gilles、精度のおかげで、あいまいさを避けるために答えを編集しました。ただしsudo service mongodb restart、新しい制限値を使用してサービスを実行するには、を使用して新しいサービスを開始するだけで十分です。
Slyx

6
Ubuntuを使用していて、mongodbがupstartによって起動されている場合、これらの制限を変更してもmongodbには影響しません。以下のようupstartに/ etc /セキュリティ設定読み取らないbugs.launchpad.net/ubuntu/+source/upstart/+bug/938669 あなたが設定する必要がありlimit、その成り上がり設定ファイルにスタンザを。
HVNSweeting

5
別の問題です。upstart設計では、で設定された制限を無視します/etc/security/limits.conf
Slyx

35

prlimitがインストールされている場合、実行中のプロセスに変更を直接適用します(util-linux-2.21に付属)

prlimit --pid <pid> --<limit>=<soft>:<hard>

例えば

prlimit --pid 12345 --nofile=1024:2048

こちらを参照


29

現在ログインしているユーザー(たとえば「root」)のオープンファイルの制限を一時的に設定するには:ulimitコマンドを使用して、現在のシェルの値を変更することもできます。ただし、ハードリミットは、rootでない限り下方にのみ調整できます。

例:

# ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 62449
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 10240
cpu time               (seconds, -t) unlimited
max user processes              (-u) 1024
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

94000に変更するには、次のnofileようにします。

ulimit -n 94000

15

制限は、親プロセスからその子プロセスに継承されます。ルートとして実行されているプロセスは、制限を任意に変更できます。他のプロセスはハード制限を増やすことはできません。したがって、ログインプロセスによって設定されるハード制限は、セッション内のすべてのプロセスに影響します。

を変更/etc/security/limits.confすると、すべての新しいセッション、およびこれらの新しいセッションのプロセスに影響します。既に実行中のプロセスや、既に実行中のプロセスによって開始されたプロセスには影響しません。

そのため、いくつかの制限を増やす必要がある場合は、ログアウトしてから再度ログインするか、別のセッションを開始する必要があります(たとえばssh localhost、または別のコンソールで)。


4

@Tombartの回答を引用するには

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

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

session required pam_limits.so
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.