From dadd9608d2720368c78e01f485fc2e2783e6a677 Mon Sep 17 00:00:00 2001 From: Erinn Clark Date: Thu, 30 Sep 2010 17:38:28 -0700 Subject: improve rpm init script by borrowing from Debian --- contrib/tor.sh.in | 50 +++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 47 insertions(+), 3 deletions(-) diff --git a/contrib/tor.sh.in b/contrib/tor.sh.in index e169761a62..92f890681f 100644 --- a/contrib/tor.sh.in +++ b/contrib/tor.sh.in @@ -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=$? ;; -- cgit v1.2.3-54-g00ecf