@kenmaroです。
普段は主に秘密計算、準同型暗号などの記事について投稿しています。
秘密計算に関連するまとめの記事に関しては以下をご覧ください。
概要
npm start をしようとしたとき、
Too many open files
的なことでエラーを吐きサーバがスタートしない。
macでは問題なく通っていたのだが、ubuntuに開発環境を移してからこのエラーとなった。
問題となっていること
ubuntuで一度にユーザが開けるファイルの数に制限が設けられており、それに引っかかっている。
ulimit -n
ulimit -a
などで制限がいくつになっているか確認できる。
私の場合は、
ulimit -n
1024
となっており、npmが走らせるファイルの数が一時的にそれを超えていたものと思われる。
解決方法
制限の上限を上げてやれば良い。
ubuntu ulimit modify
などと検索すれば出てくるが、手順としては
/etc/systemd/user.conf
/etc/systemd/system.conf
を sudo vim して、以下を追加。
DefaultLimitNOFILE=65535
/etc/security/limits.conf
を sudo vim して、以下を追加。
* hard nofile 65535
* soft nofile 65535
注意点
この2つのファイル修正後、ログアウトしてログインすると修正が反映されるということがどのウェブサイトにも書いてあったが、
自身の環境だと、一度電源を落として再ログインする必要があった。(restart ではなく、power off) --> なにが違う??
編集するファイル自体はあっていたが、power off しなければならないことに気づかず、何が間違っているのか困ったため、
もし困った人がいたら試してみると良いかもしれない。
まとめ
今回はubuntuにおけるulimit 、とりわけ最大オープンファイル数のリミット解除についてまとめた。
今回はこのへんで。