默认的ulimit值设置在哪里? (linux,centos)
我有两个CentOS 5服务器具有几乎相同的规格.当我登录并执行ulimit -u时,在一台机器上我获得无限制,而在另一台机器上我得到77824. 当我运行cron时: * * * * * ulimit -u > ulimit.txt 我得到了相同的结果(无限制,77824). 我试图确定这些设置在哪里,以便我可以改变它们.它们未在我的任何配置文件中设置(.bashrc,/ etc / profile等).这些不会影响cron)也不会影响/etc/security/limits.conf(它是空的). 我已经搜索了谷歌,甚至做了grep -Ir 77824 /,但到目前为止还没有发现任何事情.我不明白这些机器如何预设不同的限制. 我实际上不知道这些机器,但是对于一台限制为1024的不同(CentOS 6)机器,这个机器太小了.我需要运行具有更高限制的cron作业,而我知道如何设置它的唯一方法是在cron作业本身.没关系,但我宁愿在系统范围内进行设置,所以它并不像hacky那样. 谢谢你的帮助.这似乎应该很容易(不). 编辑 – 已解决 好的,我想出来了.这似乎是CentOS 6或我的机器配置的问题.在CentOS 5配置中,我可以在/etc/security/limits.conf中设置: * - nproc unlimited 这将有效地更新帐户和cron限制.但是,这在我的CentOS 6盒子中不起作用.相反,我必须这样做: myname1 - nproc unlimited myname2 - nproc unlimited ... 事情按预期工作.也许UID规范适用,但通配符(*)肯定不在这里.奇怪的是,通配符可以用于nofile限制. 我仍然想知道默认值实际来自哪里,因为默认情况下,这个文件是空的,我看不出为什么我有两个CentOS盒的默认值不同,它们具有相同的硬件并来自同一个提供者. 解决方法这些“默认”限制适用于:> Linux内核在启动时(到init进程), 普通用户的流程不能超越硬限制. Linux内核 在引导时,Linux为init进程设置默认限制,然后由所有其他(子进程)进程继承.要查看这些限制:cat / proc / 1 / limits. 例如,最大文件描述符数(ulimit -n)的内核默认值为1024/1024(软,硬),Linux 2.6.39中为has been raised到1024/4096. 您正在谈论的默认最大进程数量约为is limited to: Total RAM in kB / 128 对于x86架构(至少),但是发行版有时会更改默认内核值,因此请检查内核源代码中的kernel / fork.c,fork_init(). “进程数”限制在那里称为RLIMIT_NPROC. PAM 通常,为了确保登录时的用户身份验证,PAM与一些模块一起使用(请参阅/etc/pam.d/login). 在Debian上,负责设置限制的PAM模块位于:/lib/security/pam_limits.so. 该库将从/etc/security/limits.conf和/etc/security/limits.d/*.conf中读取其配置,但即使这些文件为空,pam_limits.so也可能使用硬编码的值,您可以在源代码. 例如,在Debian上,库has been patched默认情况下,最大进程数(nproc)是无限制的,最大文件数(nofile)是1024/1024:
因此,请检查您的CentOS’PAM模块源代码(查找RLIMIT_NPROC). 但请注意,许多进程不会通过PAM(通常,如果它们不是由登录用户启动的,例如守护进程和cron作业). (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |