ulimit如何在飞行中生效?

我已经添加了2行

/etc/security/limits.conf myuser soft nofile 16384 myuser hard nofile 16384 

…没有效果:

 su - sysctl -p su myuser ulimit -n 1024 

无需用户首先login就可以生效,这是很重要的,也就是说,我以root身份为他开始脚本。

将其添加到/etc/security/limits.conf中:

 * soft nofile 16384 * hard nofile 16384 

并添加这样的东西到/ etc / profile,它应该适用于所有帐户的系统范围:

 ulimit -n 16384 

然而,为了让ssh和su等工具遵守limits.conf文件,你需要添加以下内容到相应的pam.d文件中,如果它尚不存在的话,也就是说su添加到/etc/pam.d/su和为ssh添加到/etc/pam.d/sshd:

 session required /lib/security/pam_limits.so 

我相信你的特殊问题可以通过上面的pam.d编辑来解决。

你可以试试这些线路吗?

    • nofile 16384

看看它是如何工作的。

用户.bashrc或其他文件中是否有任何设置。

如果一切都失败了,您的脚本是否允许以myuser的身份执行以下操作:

 ulimit -SHn 16384 

如果/etc/security/limits.conf中的更改似乎不起作用,请检查/etc/security/limits.d/是否包含限制设置覆盖您的文件。

如果您需要覆盖位于/etc/security/limits.d/中的文件中configuration的限制,最好在该目录中创build自己的文件,并使用比现有文件字母数字sorting更早的名称。 系统按照字母数字顺序读取文件,如果有多个configuration的限制相同,则以后的设置将覆盖较早的设置。