ulimitのハード制限とソフト制限の違いは何ですか?
開いているファイルの数については、1024のソフト制限と10240のハード制限があります。
1024を超えるファイルを開くプログラムを実行することは可能です。ソフトリミットとは何ですか?
承認された回答:
ハード制限はルートによってのみ上げることができます(どのプロセスでも下げることができます)。したがって、セキュリティに役立ちます。ルート以外のプロセスは、ハード制限を超えることはできません。ただし、ルート以外のプロセスにその子よりも下限を設定できないという点で不便です。
ソフト制限は、プロセスによっていつでも変更できます。したがって、プロセスが連携している限りは便利ですが、セキュリティには役立ちません。
ソフト制限の一般的な使用例は、コアダンプを無効にすることです(ulimit -Sc 0
)デバッグしている特定のプロセスに対してそれらを有効にするオプションを維持しながら((ulimit -Sc unlimited; myprocess)
。
ulimit
shellコマンドは、setrlimit
のラッパーです。 システムコールなので、ここで最も信頼のおけるドキュメントを見つけることができます。
一部のシステムでは、すべての制限が実装されていない場合があることに注意してください。具体的には、一部のシステムはファイル記述子のプロセスごとの制限をサポートしていません(Linuxはサポートしています)。そうでない場合は、シェルコマンドが機能しない可能性があります。