From 5a9233f4ea3a5871c27652f5eaac18a14c7241ca Mon Sep 17 00:00:00 2001 From: frank Date: Mon, 11 Jul 2011 15:06:39 -0700 Subject: [PATCH] Bug 10679 - increase file descriptor limit to 4096 Resolved fixed --- .../SYSCONFDIR/rc.d/init.d/cloud-management.in | 12 ++++++++++++ .../SYSCONFDIR/rc.d/init.d/cloud-management.in | 11 +++++++++++ .../rhel/SYSCONFDIR/rc.d/init.d/cloud-management.in | 12 ++++++++++++ cloud.spec | 8 +++++--- 4 files changed, 40 insertions(+), 3 deletions(-) diff --git a/client/distro/centos/SYSCONFDIR/rc.d/init.d/cloud-management.in b/client/distro/centos/SYSCONFDIR/rc.d/init.d/cloud-management.in index 62748423cbf..41dec4692a3 100755 --- a/client/distro/centos/SYSCONFDIR/rc.d/init.d/cloud-management.in +++ b/client/distro/centos/SYSCONFDIR/rc.d/init.d/cloud-management.in @@ -50,6 +50,16 @@ stop() { fi } +set_ulimit() { + fd_limit=`ulimit -n` + if [ "$fd_limit" != "4096" ]; then + user=`whoami` + if [ $user == "root" ]; then + ulimit -n 4096 + fi + fi +} + # See how we were called. case "$1" in status) @@ -62,9 +72,11 @@ case "$1" in restart) stop set start + set_ulimit . /etc/rc.d/init.d/tomcat6 ;; *) + set_ulimit . /etc/rc.d/init.d/tomcat6 esac diff --git a/client/distro/fedora/SYSCONFDIR/rc.d/init.d/cloud-management.in b/client/distro/fedora/SYSCONFDIR/rc.d/init.d/cloud-management.in index 62748423cbf..3cb10bcac66 100755 --- a/client/distro/fedora/SYSCONFDIR/rc.d/init.d/cloud-management.in +++ b/client/distro/fedora/SYSCONFDIR/rc.d/init.d/cloud-management.in @@ -25,6 +25,15 @@ if [ -r /lib/lsb/init-functions ]; then . /lib/lsb/init-functions fi +set_ulimit() { + fd_limit=`ulimit -n` + if [ "$fd_limit" != "4096" ]; then + user=`whoami` + if [ $user == "root" ]; then + ulimit -n 4096 + fi + fi +} NAME="$(basename $0)" stop() { @@ -62,9 +71,11 @@ case "$1" in restart) stop set start + set_ulimit . /etc/rc.d/init.d/tomcat6 ;; *) + set_ulimit . /etc/rc.d/init.d/tomcat6 esac diff --git a/client/distro/rhel/SYSCONFDIR/rc.d/init.d/cloud-management.in b/client/distro/rhel/SYSCONFDIR/rc.d/init.d/cloud-management.in index 62748423cbf..41dec4692a3 100644 --- a/client/distro/rhel/SYSCONFDIR/rc.d/init.d/cloud-management.in +++ b/client/distro/rhel/SYSCONFDIR/rc.d/init.d/cloud-management.in @@ -50,6 +50,16 @@ stop() { fi } +set_ulimit() { + fd_limit=`ulimit -n` + if [ "$fd_limit" != "4096" ]; then + user=`whoami` + if [ $user == "root" ]; then + ulimit -n 4096 + fi + fi +} + # See how we were called. case "$1" in status) @@ -62,9 +72,11 @@ case "$1" in restart) stop set start + set_ulimit . /etc/rc.d/init.d/tomcat6 ;; *) + set_ulimit . /etc/rc.d/init.d/tomcat6 esac diff --git a/cloud.spec b/cloud.spec index 2edfbb6ef94..9435af18dca 100644 --- a/cloud.spec +++ b/cloud.spec @@ -389,9 +389,11 @@ id %{name} > /dev/null 2>&1 || /usr/sbin/useradd -M -c "Cloud.com unprivileged u -r -s /bin/sh -d %{_sharedstatedir}/%{name}/management %{name}|| true # set max file descriptors for cloud user to 4096 -sed -i /"cloud"/d /etc/security/limits.conf -echo "cloud hard nofile 4096" >> /etc/security/limits.conf -echo "cloud soft nofile 4096" >> /etc/security/limits.conf +grep "cloud" /etc/security/limits.conf &>/dev/null +if [ $? -eq 1 ]; then + echo "cloud hard nofile 4096" >> /etc/security/limits.conf + echo "cloud soft nofile 4096" >> /etc/security/limits.conf +fi rm -rf %{_localstatedir}/cache/%{name} # user harcoded here, also hardcoded on wscript