sgykfjsm.github.com

sudoでulimitをしたら「sudo: ulimit -Sn: コマンドが見つかりません」と言われた

elasticsearchの調子が悪かったので、いろいろ調べていた。その途中でnofilesの上限を調べようと思って、以下のようにコマンドを叩いたらコマンドが見つからないって言われた。

$ sudo -E -u elasticsearch 'ulimit -Sn'
sudo: ulimit -Sn: コマンドが見つかりません

で、あれ?って思っておもむろに確認してみたら、ulimitはcdとかechoのようなビルトイン関数だった。

$ which ulimit
/usr/bin/which: no ulimit in (~/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/opt/aws/bin:/home/fujishima/bin)
$ whereis ulimit
ulimit: /usr/include/ulimit.h /usr/share/man/man1/ulimit.1.gz /usr/share/man/man3p/ulimit.3p.gz /usr/share/man/man1p/ulimit.1p.gz /usr/share/man/man3/ulimit.3.gz

なので、以下のようにして実行した。

$ sudo -u elasticsearch /bin/bash -c 'ulimit -n'
32000

というメモでした。