apache2ctl: 87: ulimit: límite de ajuste de errores (operación no permitida)

El server está funcionando bien – o al less parece – pero siempre hay el siguiente error:

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

Ocurre con Apache 2.2.22-9 en Debian Wheezy.

# apache2ctl configtest

/ usr / sbin / apache2ctl: 87: ulimit: límite de configuration de errores (operación no permitida)
Sintaxis OK

# service apache2 reload

[….] Recargar configuration del server web: apache2 / usr / sbin / apache2ctl: 87: ulimit: límite de configuration de errores (Operación no permitida)
. De acuerdo

# service apache2 restart

[….] Reiniciar el server web: apache2 / usr / sbin / apache2ctl: 87: ulimit: límite de configuration de errores (no se permite la operación)
… espera / usr / sbin / apache2ctl: 87: ulimit: límite de ajuste de errores (operación no permitida)
. De acuerdo

# service apache2 status

Apache2 se está ejecutando (pid 32045).

Esto podría ayudar: – http://ubuntuforums.org/showthread.php?p=11950245#post11950245

 sudo service apache2 restart # no errors service apache2 restart # errors 

El problema se origina en / usr / sbin / apache2ctl (en Debian). Echale un vistazo:

 ~$ 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 

Aquí está estableciendo el número de files abiertos permitidos a 8192. O tratando de fallar, en su caso.

Así que para evitar un error cuando apache2ctl hace eso, ajuste la configuration de su sistema en el file /etc/security/limits.conf agregando estas dos líneas:

 * soft nofile 8192 * hard nofile 8192 

No lo aumenté más de lo necesario (8192) porque no sé qué más impactará. Sin embargo, esto se deshace de la advertencia.

No estoy seguro de si necesitará reiniciar su sistema después de eso, porque hay un elemento dynamic para los ulimits que no estoy familiarizado. Sin embargo, puede probar con suficiente facilidad para averiguar cuál es el número actual de files ulimit:

 ulimit -n 

Es posible que desee leer dónde lo encontré: stackoverflow – setting ulimit

1.Compruebe y modifique el valor de ulimit en su máquina host. Agregue los valores en el file / etc / profile y luego haga que surta efecto.

 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 

o tu puedes:

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

2. Realice el service de acoplador y haga que la configuration sea efectiva.

 sudo service docker restart 

3. Pruebe el ulimit en el recipiente.

 ulimit -n 

Este es mi resultado de la testing!

Consejos: Tal vez también puede intentar el command como a continuación (prerrequisito: ulimit en la máquina host debe ser mayor que 8192), pero estoy fallado .

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