現在のユーザーの最大オープンファイル数を増やそうとします。
> ulimit -n
1024
次のように増加しようとしましたが失敗しました。
> ulimit -n 4096
bash: ulimit: open files: cannot modify limit: Operation not permitted
だから自然にして一時許可を受けて走ったりしてみましたが失敗しました。
> sudo ulimit -n 4096
sudo: ulimit: command not found
質問
- ulimitを増やす方法は?
- なぜこれが起こるのですか?
Fedora 14を使う
ベストアンサー1
ulimit
外部コマンドではなく、シェル組み込みコマンドです。これはシェルプロセス自体で機能するため、組み込みにする必要があります。例cd
: 現在のディレクトリなどの制限は、対応する特定のプロセスの属性です。
sudo bash -c 'ulimit -n 4096'
はい、しかしbashプロセス呼び出しの制限のみが変更されるため、sudo
役に立ちません。
各制限には、ハード制限とソフト制限という2つの値があります。ルートだけがハード制限を増やすことができ、誰でもハード制限を下げることができ、ソフト制限は任意の方向に変更できます。唯一の制限は、ハード制限より高くすることはできません。ソフト制限は重要な実際の値です。
したがって、すべてのプロセスが開かれたファイルに対して少なくとも4096のハード制限を持つように準備する必要があります。ソフト制限を1024に保つことができます。多数のファイルが必要なプロセスを開始する前に、ソフト制限を増やしてください。で/etc/security/limits.conf
次の行を追加します。
paislee hard nofile 4096
paislee soft nofile 1024
paislee
プロセスを実行したいユーザー名はどこにありますか?より高い制限が必要なプロセスを開始するシェルで、次を実行します。
ulimit -Sn unlimited
ソフト制限をハード制限に増やします。