LoginSignup
63
50

More than 3 years have passed since last update.

Macの「Too many open files」エラーを解消

Last updated at Posted at 2016-11-16

「Too many open files」と出てで、ファイルが保存できないことがあった。
Railsを起動して、Gulpも起動してほげほげしてるとよく起こる。
Sublime Textでこのエラーが出ると設定も何もかも保存されないし、HotExitも効かないし、ファイルは開けないし詰む。
Atomでも起こるしOSのエラーと気づけた。
どうやらMacのファイルの上限に引っかかってしまっている模様。

確認する(初期)

コマンドで現在の上限数を確認。

$ launchctl limit
    cpu         unlimited      unlimited      
    filesize    unlimited      unlimited      
    data        unlimited      unlimited      
    stack       8388608        67104768       
    core        0              unlimited      
    rss         unlimited      unlimited      
    memlock     unlimited      unlimited      
    maxproc     709            1064           
    maxfiles    256            unlimited 

maxfiles256になっている。これが上限に達しているらしい。

設定ファイルを作成する

/Library/LaunchDaemons/limit.maxfiles.plistに設定ファイルを作成する。初期ではファイルはないはず。

$sudo vi /Library/LaunchDaemons/limit.maxfiles.plist

viでもnanoでもcodeでもお好きなエディタのコマンドで下記コードをコピペ。

limit.maxfiles.plist
<?xml version="1.0" encoding="UTF-8"?>  
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">  
  <dict>
    <key>Label</key>
    <string>limit.maxfiles</string>
    <key>ProgramArguments</key>
    <array>
      <string>launchctl</string>
      <string>limit</string>
      <string>maxfiles</string>
      <string>524288</string>
      <string>524288</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>ServiceIPC</key>
    <false/>
  </dict>
</plist>  

524288としてますが、よしなな数値で構いません。

plistファイルを読み込んで適用させる

$ sudo launchctl load -w /Library/LaunchDaemons/limit.maxfiles.plist

再起動でもできるっぽい。

適用を確認する

$ sudo launchctl limit                                              
    cpu         unlimited      unlimited      
    filesize    unlimited      unlimited      
    data        unlimited      unlimited      
    stack       8388608        67104768       
    core        0              unlimited      
    rss         unlimited      unlimited      
    memlock     unlimited      unlimited      
    maxproc     709            1064           
    maxfiles    524288         524288   

maxfiles524288になった。
「Too many open files」のエラーも出なくなった。
よかったよかった。

63
50
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
63
50