web-dev-qa-db-ja.com

sudo:ulimit:コマンドが見つかりません

Ubuntu 12.04ではulimit -n、1024を表示しています。開いているファイルの制限を1024から65535に増やしたいので、次のコマンドを試しました。

Sudo ulimit -n 65535

しかし、私は次のエラーを受け取ります:

Sudo: ulimit: command not found

ファイル制限を1024から65535に増やすにはどうすればよいですか?

24
sunpy

制限はプロセス固有です。 ulimitはシェルの組み込みであり、このシェルとこのシェルから開始されたプロセスの制限のみを変更できます。 Sudo ulimitは意味がありません。失敗しない場合でも、Sudoによって同時に開始されたプロセスにのみ影響し、何も起こりません。

ハード制限を超えて制限を引き上げるには、globalallユーザーのハード制限を引き上げるか、またはspecificに別の制限を設定する必要があります=ユーザー。これらの制限は/etc/security/limits.conf(または/etc/security/limits.d/)で定義されています。このファイルを編集して、ユーザーの新しいエントリを作成します。

sunpy             hard    nofile           65535

ファイルを保存して、新しいセッションを開きます。その後、新しいセッション内でulimit -Hnを呼び出すと、開いているファイル数の新しいhard制限が表示されます。 hard制限を使用するには、ulimit -n 65535を呼び出して、現在のsoft制限をhard制限に引き上げる必要があります。

もちろん、/etc/security/limits.confhardの代わりにsoftを指定することにより、soft制限を永続的に変更することもできます。その後、手動でソフト制限を引き上げる必要はありませんが、新しい制限が各セッションに適用されます。

ああ、そして この回答によれば/etc/pam.d/common-session*を編集して追加する必要があるようです:

session required pam_limits.so

まだ行われていない場合。それ以外の場合、これらの制限はセッションに適用されません。

32
scai