服务器运行良好 – 或者至less它似乎 – 但总是有以下错误:
apache2/usr/sbin/apache2ctl: 87: ulimit: error setting limit (Operation not permitted)
它发生在Debian Wheezy上的Apache 2.2.22-9上。
# apache2ctl configtest
/ usr / sbin / apache2ctl:87:ulimit:错误设置限制(操作不允许)
语法OK
# service apache2 reload
重新加载Web服务器configuration:apache2 / usr / sbin / apache2ctl:87:ulimit:错误设置限制(操作不允许)
。 好
# service apache2 restart
[….]重新启动Web服务器:apache2 / usr / sbin / apache2ctl:87:ulimit:错误设置限制(操作不允许)
…等待/ usr / sbin / apache2ctl:87:ulimit:错误设置限制(操作不允许)
。 好
# service apache2 status
Apache2正在运行(pid 32045)。
这可能有助于: – http://ubuntuforums.org/showthread.php?p=11950245#post11950245
sudo service apache2 restart # no errors service apache2 restart # errors
问题来自/ usr / sbin / apache2ctl(在Debian上)。 一探究竟:
~$ 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
这里是设置允许打开文件的数量为8192.或者尝试和失败,在你的情况。
所以为了避免在apache2ctl这样做时出现错误,通过添加以下两行来调整/etc/security/limits.conf文件中的系统设置:
* soft nofile 8192 * hard nofile 8192
我没有把它增加到超过必要(8192),因为我不知道它会影响到什么。 然而,这摆脱了警告。
不知道你是否需要重新启动系统后,因为有一个dynamic的元素ulimits我不熟悉。 但是,你可以很容易地testing,找出你目前的ulimit文件是什么:
ulimit -n
您可能想要阅读我在哪里find它: stackoverflow – 设置ulimit
1.检查并修改主机中ulimit的值。 将这些值添加到文件/ etc / profile中,然后使其生效。
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
或者你可以:
sudo sh -c 'printf "\nulimit -HSn 999999\n" >> /etc/sysconfig/docker'
2.重新启动docker服务并使configuration生效。
sudo service docker restart
3.testing容器中的ulimit。
ulimit -n
这是我的testing结果!
提示:也许你也可以尝试下面的命令(先决条件:主机中的ulimit应该大于8192),但我失败了 。
docker run --privileged -it -p xxxx:80 --ulimit data=8192 linode/lamp /bin/bash