回答:
いいえ。ただし、アクティブなセッションウィンドウをすべて閉じる必要があります。彼らはまだ古い値を覚えています。つまり、ログアウトしてから再度ログインします。すべてのリモートの新しいセッションまたはローカルのセキュアシェルは、制限の変更の影響を受けます。
nofile
に制限を94000
するためにmongodb
、ユーザ?再起動せずにどうすればよいですか?mongodb
サービスを再起動するだけでいいですか?
prlimit
コマンドを使用して、実行中のプロセスのrlimitsを変更できます。
sudo service mongodb restart
、新しい制限値を使用してサービスを実行するには、を使用して新しいサービスを開始するだけで十分です。
upstart
に/ etc /セキュリティ設定読み取らないbugs.launchpad.net/ubuntu/+source/upstart/+bug/938669 あなたが設定する必要がありlimit
、その成り上がり設定ファイルにスタンザを。
upstart
設計では、で設定された制限を無視します/etc/security/limits.conf
。
現在ログインしているユーザー(たとえば「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
制限は、親プロセスからその子プロセスに継承されます。ルートとして実行されているプロセスは、制限を任意に変更できます。他のプロセスはハード制限を増やすことはできません。したがって、ログインプロセスによって設定されるハード制限は、セッション内のすべてのプロセスに影響します。
を変更/etc/security/limits.conf
すると、すべての新しいセッション、およびこれらの新しいセッションのプロセスに影響します。既に実行中のプロセスや、既に実行中のプロセスによって開始されたプロセスには影響しません。
そのため、いくつかの制限を増やす必要がある場合は、ログアウトしてから再度ログインするか、別のセッションを開始する必要があります(たとえばssh localhost
、または別のコンソールで)。
@Tombartの回答を引用するには
これらの制限は、再起動後に適用されます。
再起動せずに変更を適用する場合
/etc/pam.d/common-session
は、ファイルの最後に次の行を追加して変更 します。session required pam_limits.so