我有一个可以通过 php-fpm 同时启动 n 次的脚本。php-fpm 池设置为在某个用户名下运行,我想限制该用户名可以启动的进程数。
ps aux|grep fpm
root 7165 0.0 0.0 849288 27872 ? Ss 05:47 0:00 php-fpm: master process (/etc/php5/fpm/php-fpm.conf)
myuser 7167 4.6 0.1 872512 77148 ? S 05:47 0:31 php-fpm: pool myapp #pool I want to limit
www-data 7172 0.2 0.1 863248 62904 ? S 05:47 0:01 php-fpm: pool www #default pool
通过 php-fpm 启动的进程如下:
37192 myuser 20 0 347m 53m 10m S 13 0.1 0:00.38 php -f /var/www/html/myscript.php
它在 Ubuntu 上。我已经设置了/etc/security/limits.conf
:
myuser soft nproc 10
myuser hard nproc 10
并且还包括session required pam_limits.so
但/etc/pam.d/common-session-noninteractive
不适用以下限制:
cat /proc/$(ps aux|grep "php -f /var/www/html/myscript"|awk '{print $2}'|head -n1)/limits
Limit Soft Limit Hard Limit Units
Max processes 385951 385951 processes
如果我以用户身份执行此操作,它将起作用:
su -s /bin/bash myuser
ulimit -u
10
是什么赋予了?