不同用户的堆栈大小限制不同,如何确保所有用户都设置了相同的堆栈大小?

不同用户的堆栈大小限制不同,如何确保所有用户都设置了相同的堆栈大小?

我有一台 CentOS 6.4 服务器,当我ulimit -a以 root 身份运行时,出现以下信息:

core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 92905
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 65536
cpu time               (seconds, -t) unlimited
max user processes              (-u) 1024
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

当我ulimit -a以 apache 的用户身份运行时,我得到了这个:

core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 92905
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 32768
cpu time               (seconds, -t) unlimited
max user processes              (-u) 92905
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

我如何确保所有用户都设置了相同的堆栈大小?

编辑:

[root@web3 ~]# tail /etc/security/limits.conf
#*               soft    core            0
#*               hard    rss             10000
#@student        hard    nproc           20
#@faculty        soft    nproc           20
#@faculty        hard    nproc           50
#ftp             hard    nproc           0
#@student        -       maxlogins       4
*                -       stack           65536
apache       -   stack       65536
# End of file
[root@web3 ~]#

即使我改变了此设置/etc/security/limits.conf并重新启动了服务器, apache 的堆栈大小仍然是 32768。

答案1

不确定你为什么要为所有用户设置相同的限制。但我认为理想的位置是 /etc/profile 或 /etc/bashrc。

答案2

在 CentOS 6.4 中,apache 用户的主目录默认为 /var/www。这也是 Apache DocumentRoot。但是,由于 apache 用户的 shell 是 /sbin/nologin,因此将 shell 配置文件放在这里不会有太大用处。

不过,您可以在 /etc/security/limits.conf 中针对每个用户或每个组设置限制,这将允许您获得正确的结果。此外,您可以在 limits.conf 中设置硬限制和软限制,以实现更灵活的配置。

答案3

好的,我找到了解决方案。它似乎是在文件中默认设置的/etc/init.d/httpd。我在每个服务器上手动更改了它,重新启动后httpd,现在它设置正确了。

相关内容