ulimit
is a shell builtin like cd
, not a separate program. sudo
looks for a binary to run, but there is noulimit
binary, which is why you get the error message. You need to run it in a shell.
However, while you do need to be root to raise the limit to 65535, you probably don’t want to run your program as root. So after you raise the limit you should switch back to the current user.
To do this, run:
sudo sh -c "ulimit -n 65535 && exec su $LOGNAME"
and you will get a new shell, without root privileges, but with the raised limit. The exec
causes the new shell to replace the process with sudo
privileges, so after you exit that shell, you won’t accidentally end up as root again.
原文:http://blog.csdn.net/pengwupeng2008/article/details/12496399