apache2ctl: 87: ulimit: limite de configuração de erro (operação não permitida)

12

O servidor está funcionando bem - ou pelo menos parece - mas sempre há o seguinte erro:

apache2/usr/sbin/apache2ctl: 87: ulimit: error setting limit (Operation not permitted)

Isso acontece com o Apache 2.2.22-9 no Debian Wheezy.

# apache2ctl configtest

/usr/sbin/apache2ctl: 87: ulimit: error setting limit (Operation not permitted)
Syntax OK

# service apache2 reload

[....] Reloading web server config: apache2/usr/sbin/apache2ctl: 87: ulimit: error setting limit (Operation not permitted)
. ok

# service apache2 restart

[....] Restarting web server: apache2/usr/sbin/apache2ctl: 87: ulimit: error setting limit (Operation not permitted)
... waiting /usr/sbin/apache2ctl: 87: ulimit: error setting limit (Operation not permitted)
. ok

# service apache2 status

Apache2 is running (pid 32045).

    
por Pascal Polleunus 05.08.2012 / 14:02

3 respostas

16

Isso pode ajudar: - link

sudo service apache2 restart # no errors
service apache2 restart      # errors
    
por 09.08.2012 / 12:59
4

O problema vem de / usr / sbin / apache2ctl (no Debian). Confira:

~$ grep ULIMIT /usr/sbin/apache2ctl
ULIMIT_MAX_FILES="${APACHE_ULIMIT_MAX_FILES:-ulimit -n 8192}"
if [ "x$ULIMIT_MAX_FILES" != "x" ] ; then
    $ULIMIT_MAX_FILES

Aqui está definindo o número de arquivos abertos permitidos para 8192. Ou tentando e reprovando, no seu caso.

Portanto, para evitar erros quando o apache2ctl fizer isso, ajuste as configurações do seu sistema no arquivo /etc/security/limits.conf adicionando estas duas linhas:

*               soft    nofile          8192
*               hard    nofile          8192

Eu não o aumentei mais do que o necessário (8192) porque não sei o que mais impactará. No entanto, isso elimina o aviso.

Não tenho certeza se você precisará reinicializar o sistema depois disso, porque há um elemento dinâmico nos ulimits com os quais não estou familiarizado. No entanto, você pode testar facilmente o suficiente para descobrir qual é o número atual de arquivos ulimit:

ulimit -n

Você pode querer ler onde eu encontrei: stackoverflow - definindo ulimit

    
por 11.02.2014 / 13:10
1

1.Verifique e modifique o valor de ulimit na sua máquina host. Adicione os valores no arquivo / etc / profile e faça-o entrar em vigor.

ulimit -u 10240
ulimit -n 8192     #This configuration is what we most needed
ulimit -d unlimited
ulimit -m unlimited
ulimit -s unlimited
ulimit -t unlimited
ulimit -v unlimited

source /etc/profile

ou você pode:

sudo sh -c 'printf "\nulimit -HSn 999999\n" >> /etc/sysconfig/docker'

2.Reinicie o serviço de encaixe e torne a configuração efetiva.

sudo service docker restart

3. Teste o ulimit no contêiner.

ulimit -n

Este é o resultado do meu teste!

Dicas: Talvez você também possa tentar o comando como abaixo (pré-requisito: ulimit na máquina host deve ser maior que 8192), mas estou com falha .

docker run --privileged -it -p xxxx:80 --ulimit data=8192 linode/lamp /bin/bash
    
por 13.06.2017 / 11:33