我正在尝试增加当前用户的最大打开文件数
> ulimit -n
1024
Run Code Online (Sandbox Code Playgroud)
我尝试增加和失败如下
> ulimit -n 4096
bash: ulimit: open files: cannot modify limit: Operation not permitted
Run Code Online (Sandbox Code Playgroud)
所以我做自然的事情并尝试在临时许可下运行,但失败了
> sudo ulimit -n 4096
sudo: ulimit: command not found
Run Code Online (Sandbox Code Playgroud)
问题
使用 Fedora 14
为了解决https://unix.stackexchange.com/a/446428/674 中的问题,我遵循了/sf/answers/1223879891/,但它没有设置核心文件限制大小?
$ sudo sh -c "ulimit -c 1024 && exec su t"
$ ulimit -c
0
Run Code Online (Sandbox Code Playgroud)
这种方式是暂时只为当前shell更改核心文件限制大小,还是永久更改所有用户或当前用户的所有shell?
更新:原帖/sf/answers/1223879891/和https://unix.stackexchange.com/a/238413/674和https://unix.stackexchange.com/a/169035/674都推荐使用 sudo sh -c "ulimit -c 1024 && exec su $LOGNAME". 但是两者ulimit -c 1024和exec su $LOGNAME" 只影响由创建的shell sudo,那么命令的目的是什么?exec su $LOGNAME"也没有做任何有意义的事情来利用更改后的限制。
注意:我关注的是为什么上述方法不起作用,尽管还有其他方法可以解决这个问题:
我应该将使用新限制值的命令放在 sudo 执行的 shell 中
例如
$ sudo sh -c "ulimit -c 1024 && sleep 100"
^\Quit
$ ls
core
Run Code Online (Sandbox Code Playgroud)/etc/security/limits.conf …