現在のユーザーが開くことができるファイルの最大数を増やしようとしています
> 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
質問
Fedora 14の使用
ulimit
は、組み込みのシェルであり、外部コマンドではありません。 cd
のようにシェルプロセス自体に作用するため、組み込みが必要です。現在のディレクトリのような制限は、その特定のプロセスのプロパティです。
Sudo bash -c 'ulimit -n 4096'
は機能しますが、Sudo
のみによって呼び出されるbashプロセスの制限が変更されるため、役に立ちません。
各制限には、ハード制限とソフト制限の2つの値があります。ハード制限を上げることができるのはrootだけです。誰もがハードリミットを下げることができ、ソフトリミットはハードリミットを超えてはいけないという唯一の制約により、どちらの方向にも変更できます。ソフトリミットは、重要な実際の値です。
したがって、すべてのプロセスで、オープンファイルのハード制限が少なくとも4096になるように調整する必要があります。ソフト制限は1024に保つことができます。多くのファイルを必要とするプロセスを起動する前に、ソフト制限を上げてください。 /etc/security/limits.conf
、行を追加
paislee hard nofile 4096
paislee soft nofile 1024
ここで、paislee
は、プロセスを実行するユーザーの名前です。より高い制限が必要なプロセスを起動するシェルで、次を実行します。
ulimit -Sn unlimited
ソフトリミットをハードリミットに引き上げます。
ファイルを開く/etc/security/limits.conf
と行を追加<user> soft nofile <value>
。 ulimit
を使用するには、rootユーザーに変更して同じことを試してください。