使用sudo ulimit时找不到命令

sun*_*npy 47 linux shell ubuntu-12.04

我正在使用ubuntu 12.04,我运行ulimit -n,它显示1024,我想将我的打开文件限制从1024增加到65535,所以我尝试了以下命令:

sudo ulimit -n 65535
Run Code Online (Sandbox Code Playgroud)

但我收到以下错误:

sudo: ulimit: command not found
Run Code Online (Sandbox Code Playgroud)

如何将文件限制从1024增加到65535?任何帮助将不胜感激.

and*_*otn 102

ulimit是一个内置的shell cd,而不是一个单独的程序.sudo查找要运行的二进制文件,但没有ulimit二进制文件,这就是您收到错误消息的原因.你需要在shell中运行它.

但是,虽然您确实需要root来将限制提高到65535,但您可能不希望以root身份运行程序.因此,在提高限制后,您应该切换回当前用户.

为此,请运行:

sudo sh -c "ulimit -n 65535 && exec su $LOGNAME"
Run Code Online (Sandbox Code Playgroud)

并且您将获得一个没有root权限的新shell,但具有提升的限制.该exec原因新壳与更换过程sudo的权限,所以你退出该壳后,你会不小心又最终成为根.