| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 | #!/bin/sh## Copyright (c) 2006-2007 Andrew Lewman## tor    The Onion Router## Startup/shutdown script for tor. This is a wrapper around torctl;# torctl does the actual work in a relatively system-independent, or at least# distribution-independent, way, and this script deals with fitting the# whole thing into the conventions of the particular system at hand.## These next couple of lines "declare" tor for the "chkconfig" program,# originally from SGI, used on Red Hat/Fedora and probably elsewhere.## chkconfig: 2345 90 10# description: Onion Router - A low-latency anonymous proxy#### BEGIN INIT INFO# Provides: tor# Required-Start: $remote_fs $network# Required-Stop: $remote_fs $network# Default-Start: 3 5# Default-Stop: 0 1 2 6# Short-Description: Start the tor daemon# Description:  Start the tor daemon:  the anon-proxy server### END INIT INFO. /etc/rc.status# Shell functions sourced from /etc/rc.status:#      rc_check         check and set local and overall rc status#      rc_status        check and set local and overall rc status#      rc_status -v     ditto but be verbose in local rc status#      rc_status -v -r  ditto and clear the local rc status#      rc_failed        set local and overall rc status to failed#      rc_reset         clear local rc status (overall remains)#      rc_exit          exit appropriate to overall rc status# First reset status of this servicerc_reset# Increase open file descriptors a reasonable amountulimit -n 8192TORCTL=@BINDIR@/torctl# torctl will use these environment variablesTORUSER=@TORUSER@export TORUSERTORGROUP=@TORGROUP@export TORGROUPTOR_DAEMON_PID_DIR="@LOCALSTATEDIR@/run/tor"if [ -x /bin/su ] ; then    SUPROG=/bin/suelif [ -x /sbin/su ] ; then    SUPROG=/sbin/suelif [ -x /usr/bin/su ] ; then    SUPROG=/usr/bin/suelif [ -x /usr/sbin/su ] ; then    SUPROG=/usr/sbin/suelse    SUPROG=/bin/suficase "$1" in    start)    echo "Starting tor daemon"    if [ ! -d $TOR_DAEMON_PID_DIR ] ; then        mkdir -p $TOR_DAEMON_PID_DIR        chown $TORUSER:$TORGROUP $TOR_DAEMON_PID_DIR    fi    ## Start daemon with startproc(8). If this fails    ## the echo return value is set appropriate.    startproc -f $TORCTL start    # Remember status and be verbose    rc_status -v    ;;    stop)    echo "Stopping tor daemon"     startproc -f $TORCTL stop    # Remember status and be verbose    rc_status -v    ;;    restart)    echo "Restarting tor daemon"     startproc -f $TORCTL restart    # Remember status and be verbose    rc_status -v    ;;    reload)    echo "Reloading tor daemon"     startproc -f $TORCTL reload    # Remember status and be verbose    rc_status -v    ;;    status)    startproc -f $TORCTL status    # Remember status and be verbose    rc_status -v    ;;    *)    echo "Usage: $0 (start|stop|restart|reload|status)"    RETVAL=1esacrc_exit
 |