Eu tenho um script que pode ser lançado n vezes ao mesmo tempo através do php-fpm. O conjunto php-fpm está configurado para ser executado sob um determinado nome de usuário e eu quero limitar o número de processos que esse nome de usuário pode executar.
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
É assim que o processo iniciado pelo php-fpm se parece com:
37192 myuser 20 0 347m 53m 10m S 13 0.1 0:00.38 php -f /var/www/html/myscript.php
Está no Ubuntu. Eu configurei em /etc/security/limits.conf
:
myuser soft nproc 10
myuser hard nproc 10
e também incluiu session required pam_limits.so
em /etc/pam.d/common-session-noninteractive
, mas os limites não se aplicam:
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
Se eu su como usuário, funciona:
su -s /bin/bash myuser
ulimit -u
10
O que dá?