システム制限
制限を変更していない/etc/launchd.confか、/etc/rc.localもはや最近のMacOSのためにサポートされています。参照:旧システムと技術。
代わりに、新しい起動エージェントを作成する必要があります。
コマンドを使用したコマンドの例を次に示しPlistBuddyます(参照:)man PlistBuddy。
sudo /usr/libexec/PlistBuddy /Library/LaunchAgents/com.launchd.maxfiles.plist \
-c "add Label string com.launchd.maxfiles" \
-c "add ProgramArguments array" \
-c "add ProgramArguments: string launchctl" \
-c "add ProgramArguments: string limit" \
-c "add ProgramArguments: string maxfiles" \
-c "add ProgramArguments: string 10240" \
-c "add ProgramArguments: string unlimited" \
-c "add RunAtLoad bool true"
maxproc制限についても同様:
sudo /usr/libexec/PlistBuddy /Library/LaunchAgents/com.launchd.maxproc.plist \
-c "add Label string com.launchd.maxproc" \
-c "add ProgramArguments array" \
-c "add ProgramArguments: string launchctl" \
-c "add ProgramArguments: string limit" \
-c "add ProgramArguments: string maxproc" \
-c "add ProgramArguments: string 2000" \
-c "add ProgramArguments: string unlimited" \
-c "add RunAtLoad bool true"
上記のファイルをロードするには、次を実行しますsudo launchctl load /Library/LaunchAgents/com.launchd.*.plist。
ノート:
- ファイルを印刷するには、:
catまたはを実行しますPlistBuddy -x -c Print /Library/LaunchAgents/com.launchd.maxfiles.plist。
- ロード中のエラーをログで確認するには、次を実行します
tail -f /var/log/system.log。
- 現在の
launchd制限を確認するには、次を実行しますlaunchctl limit。
.plistファイルは、(ユーザごとまたはシステム全体のエージェントフォルダに置くことができますLaunchAgents)。詳細についてはman launchd、およびman launchd.plist、またはこれまたはその回答を参照してください。
カーネルの制限
上記のLaunchdシステムの制限はまだカーネルによって制限されているため、カーネル状態変数に設定されている実際の制限よりも高く設定することはできません(man sysctlヘルプを参照してください)。
現在のカーネルの制限を確認するには、次を実行しますsysctl -a | grep ^kern.max。
maxfiles制限を増やすには、次を実行しますsudo sysctl -w kern.maxfiles=20480。
それらを永続化するには、同様の方法を使用してスタートアップ.plistファイルを作成します。たとえば、
sudo /usr/libexec/PlistBuddy /Library/LaunchAgents/com.kern.maxfiles.plist \
-c "add Label string com.kern.maxfiles" \
-c "add ProgramArguments array" \
-c "add ProgramArguments: string sysctl" \
-c "add ProgramArguments: string -w" \
-c "add ProgramArguments: string kern.maxfiles=20480" \
-c "add RunAtLoad bool true"
シェル制限
シェルの制限については、個々のユーザーまたはすべてのユーザーに関連するulimitコマンド~/.bashrcまたは~/.bash_profileスタートアップファイルを追加/etc/bashrcします。参照:Macで永続シェルのulimit設定を追加する方法?
追加する推奨行:
# Changes the ulimit limits.
ulimit -Sn 4096 # Increase open files.
ulimit -Sl unlimited # Increase max locked memory.