「launchctl limit」と「ulimit」の関係は何ですか?


11

システム起動ファイル/シェル起動スクリプトにulimit設定はありません。

ulimit -a ショー:

-u: processes                       1064
-n: file descriptors                256

launchctl limit ショー:

maxproc     2048           2048           
maxfiles    2048           2048

launchctlの制限はシェルのulimit出力と一致する必要があることを漠然と覚えていますが、間違っているかもしれません。

lauchctlの制限とulimitの間に関係はありますか?


コマンドのmanページから満足のいく答えを得られませんか?
アンドリューU. 14年

@AndrewU。launchctlのマニュアルページには制限が記載されておらず、ulimitのマニュアルページにはlaunchctlまたはlaunchdが記載されていません。
ハワード14年

回答:


10

シェルでは、ulimitは「シェルおよびシェルによって開始されたプロセスで使用可能なリソースの制御」を提供します(を参照man bash)。したがって、シェルとその子にのみ適用されます。launchdの制限は、launchdと管理するプロセスに関連しています。2つは別々です。

個々のプログラムは、標準Cライブラリルーチンulimit()またはgetrlimit()およびを呼び出すことにより、独自のリソース制限を設定できますsetrlimit()。プロセスがスーパーユーザーとして実行されていない限り、特定のリソース制限を引き上げることはできません。

実際の例として、大規模なソフトウェアプロジェクトをデバッグしますが、開いているファイルの数に対するシェルのデフォルトの制限は十分に大きくありません。.bashrcファイルには、次のものがあります。

# Increase the upper limit on the number of open files:
ulimit -n 1024

今、私のデバッガーは、必要なすべてのファイルを開くことができないと文句を言いません。明らかに、これはlaunchdに影響を与えません。


1
詳細については、デフォルトのulimit設定はから派生していlaunchctl limitます。ユーザーはulimit番号を変更できますが、launchctl limitハード制限を超えることはできません。
ハワード14年

これは再起動時にリセットされます
engineerDave
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.