improve rpm init script by borrowing from Debian

This commit is contained in:
Erinn Clark 2010-09-30 17:38:28 -07:00 committed by Roger Dingledine
parent 18b1097f28
commit dadd9608d2

View File

@ -16,6 +16,15 @@
# description: Onion Router - A low-latency anonymous proxy
#
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/sbin/tor
NAME=tor
DESC="tor daemon"
TORPIDDIR=/var/run/tor
TORPID=$TORPIDDIR/tor.pid
WAITFORDAEMON=60
ARGS=""
# Library functions
if [ -f /etc/rc.d/init.d/functions ]; then
. /etc/rc.d/init.d/functions
@ -23,9 +32,6 @@ elif [ -f /etc/init.d/functions ]; then
. /etc/init.d/functions
fi
# Increase open file descriptors a reasonable amount
ulimit -n 8192
TORCTL=@BINDIR@/torctl
# torctl will use these environment variables
@ -44,9 +50,47 @@ else
SUPROG=/bin/su
fi
# Raise ulimit based on number of file descriptors available (thanks, Debian)
if [ -r /proc/sys/fs/file-max ]; then
system_max=`cat /proc/sys/fs/file-max`
if [ "$system_max" -gt "80000" ] ; then
MAX_FILEDESCRIPTORS=32768
elif [ "$system_max" -gt "40000" ] ; then
MAX_FILEDESCRIPTORS=16384
elif [ "$system_max" -gt "10000" ] ; then
MAX_FILEDESCRIPTORS=8192
else
MAX_FILEDESCRIPTORS=1024
cat << EOF
Warning: Your system has very few filedescriptors available in total.
Maybe you should try raising that by adding 'fs.file-max=100000' to your
/etc/sysctl.conf file. Feel free to pick any number that you deem appropriate.
Then run 'sysctl -p'. See /proc/sys/fs/file-max for the current value, and
file-nr in the same directory for how many of those are used at the moment.
EOF
fi
else
MAX_FILEDESCRIPTORS=8192
fi
NICE=""
case "$1" in
start)
if [ -n "$MAX_FILEDESCRIPTORS" ]; then
echo -n "Raising maximum number of filedescriptors (ulimit -n) to $MAX_FILEDESCRIPTORS"
if ulimit -n "$MAX_FILEDESCRIPTORS" ; then
echo "."
else
echo ": FAILED."
fi
fi
action $"Starting tor:" $TORCTL start
RETVAL=$?
;;