| 
					
				 | 
			
			
				@@ -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=$? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ;; 
			 |