Force nproc ulimit no usuário não interativo

1

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á?

    
por w00t 26.06.2016 / 04:44

0 respostas