小编Sam*_*Sam的帖子

“ulimit -Su”是否限制在交互式登录子shell和其中创建的tmux会话中创建的用户进程数?

几个月前,我编写了一组 bash 脚本,使用 tmux 在 AIX 7.1 服务器上创建一个简单的 IDE。我的一个脚本中存在一个错误,有时会非常快速地生成用户进程,直至达到 ulimit 设置的限制。这种情况很少发生(大约每月一次),而且我已经花了几个小时来追踪这个错误,但没有成功,所以我决定暂时,我可以简单地将我的软用户进程限制设置为低于硬限制(例如 100 而不是 1024),这样当我的错误再次出现时,服务器上的其他用户不会有明显的性能下降。不幸的是,“ulimit -Su 100”似乎在 AIX 7.1 上的 bash 中不起作用,但它在 ksh 中起作用。我已经执行了以下解决方法:

使 ksh 成为默认 shell:

$ chsh [username] /usr/bin/ksh
Run Code Online (Sandbox Code Playgroud)

将以下内容写入 ~/.kshrc:

ulimit -Su 100  # works in ksh, but not in bash
/bin/bash -il   # start bash as an interactive login shell
exit            # once bash exits, exit from ksh, too
Run Code Online (Sandbox Code Playgroud)

所以现在,每次我创建一个 shell 时,ksh 都会设置软用户进程限制并启动 bash 作为一个交互式登录 shell(我仍然希望 ~/.bash_profile 获得来源)。现在我想知道,在 ksh 中设置的用户进程限制是否仍然会在 bash 子 shell 中强制执行?在顶级 bash 子shell中,我运行了以下命令: …

bash ksh process tmux ulimit

5
推荐指数
1
解决办法
2718
查看次数

标签 统计

bash ×1

ksh ×1

process ×1

tmux ×1

ulimit ×1