Isso pode ajudar: - link
sudo service apache2 restart # no errors
service apache2 restart # errors
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).
Isso pode ajudar: - link
sudo service apache2 restart # no errors
service apache2 restart # errors
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
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