]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
improve rpm init script by borrowing from Debian tor-0.2.2.17-alpha
authorErinn Clark <erinn@torproject.org>
Fri, 1 Oct 2010 00:38:28 +0000 (17:38 -0700)
committerRoger Dingledine <arma@torproject.org>
Fri, 1 Oct 2010 01:48:29 +0000 (21:48 -0400)
contrib/tor.sh.in

index e169761a628bdd5638d55ecc569b9f05900f13e0..92f890681fa28ec696c0d2bcd30f6448be2eb1d2 100644 (file)
 # 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=$?
     ;;