123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- #!/bin/sh
- TORLOC=/Library/StartupItems/Tor/Tor.loc
- if [ -f $TORLOC ]; then
- TORDIR=`cat /Library/StartupItems/Tor/Tor.loc`
- if [ "x$TORDIR" = "x" -o ! -d $TORDIR -o ! -x $TORDIR/tor ]; then
- TORDIR=/Library/Tor
- fi
- else
- TORDIR=/Library/Tor
- fi
- TORCONF=$TORDIR/torrc
- TORDATA=$TORDIR/var/lib/tor
- TORPID=/var/run/Tor.pid
- TORUSER=_tor
- TORGROUP=daemon
- TORCMD=$TORDIR/tor
- TORLOG=/var/log/tor.log
- ## Determine OSX Version
- # map version to name
- if [ -x /usr/bin/sw_vers ]; then
- # This is poor, yet functional. We don't care about the 3rd number in
- # the OS version
- OSVER=`/usr/bin/sw_vers | grep ProductVersion | cut -f2 | cut -d"." -f1,2`
- case "$OSVER" in
- "10.6") ARCH="i386";;
- "10.5") ARCH="i386";;
- "10.4") ARCH="i386";;
- "10.3") ARCH="ppc";;
- "10.2") ARCH="ppc";;
- "10.1") ARCH="ppc";;
- "10.0") ARCH="ppc";;
- esac
- else
- ARCH="unknown"
- fi
-
- if [ $ARCH != "i386" ]; then
- export EVENT_NOKQUEUE=1
- fi
- ##
- # Tor Service
- ##
- . /etc/rc.common
- StartService ()
- {
- if [ -f $TORCMD ]; then
- if pid=$(GetPID Tor); then
- return 0
- else
- ConsoleMessage "Starting Tor Service"
- # Tentative
- # Making sure it is not running (I know it is not a best approarch)
- killall tor 2>/dev/null
- $TORCMD -f "$TORCONF" --runasdaemon 1 --pidfile "$TORPID" --datadirectory "$TORDATA" --user "$TORUSER" --group "$TORGROUP" --log "notice file $TORLOG" &
- fi
- fi
- }
- StopService ()
- {
- if pid=$(GetPID Tor); then
- ConsoleMessage "Stopping Tor Service"
- kill -TERM "${pid}"
- # Just for sanity (sometimes necessary.)
- killall tor 2>/dev/null
- else
- ConsoleMessage "Tor Service not responding."
- # Just for sanity (sometimes necessary.)
- killall tor 2>/dev/null
- fi
- }
- RestartService () { StopService; StartService; }
- if [ "$#" = 0 ]; then
- echo "Syntax: tor {start|stop}"
- exit 1
- fi
- RunService "$1"
|