Tor
上传用户:awang829
上传日期:2019-07-14
资源大小:2356k
文件大小:2k
源码类别:

网络

开发平台:

Unix_Linux

  1. #!/bin/sh
  2. TORLOC=/Library/StartupItems/Tor/Tor.loc
  3. if [ -f $TORLOC ]; then
  4.  TORDIR=`cat /Library/StartupItems/Tor/Tor.loc`
  5.  if [ "x$TORDIR" = "x" -o ! -d $TORDIR -o ! -x $TORDIR/tor ]; then
  6.    TORDIR=/Library/Tor
  7.  fi
  8. else
  9.  TORDIR=/Library/Tor
  10. fi
  11. TORCONF=$TORDIR/torrc
  12. TORDATA=$TORDIR/var/lib/tor
  13. TORPID=/var/run/Tor.pid
  14. TORUSER=_tor
  15. TORGROUP=daemon
  16. TORCMD=$TORDIR/tor
  17. TORLOG=/var/log/tor.log
  18. ## Determine OSX Version
  19. # map version to name
  20. if [ -x /usr/bin/sw_vers ]; then
  21. # This is poor, yet functional.  We don't care about the 3rd number in
  22. # the OS version
  23.   OSVER=`/usr/bin/sw_vers | grep ProductVersion | cut -f2 | cut -d"." -f1,2`
  24.       case "$OSVER" in
  25.     "10.6") ARCH="universal";;
  26. "10.5") ARCH="universal";;
  27.   "10.4") ARCH="universal";;
  28.   "10.3") ARCH="ppc";;
  29.   "10.2") ARCH="ppc";;
  30.   "10.1") ARCH="ppc";;
  31.   "10.0") ARCH="ppc";;
  32.       esac
  33. else
  34. ARCH="unknown"
  35. fi
  36.  
  37. if [ $ARCH != "universal" ]; then
  38. export EVENT_NOKQUEUE=1
  39. fi
  40. ##
  41. # Tor Service
  42. ##
  43. . /etc/rc.common
  44. StartService ()
  45. {
  46.     if [ -f $TORCMD ]; then
  47.         if pid=$(GetPID Tor); then
  48.             return 0
  49.         else
  50. ConsoleMessage "Starting Tor Service"
  51. # Tentative
  52. # Making sure it is not running (I know it is not a best approarch)
  53. killall tor 2>/dev/null
  54. $TORCMD -f "$TORCONF" --runasdaemon 1 --pidfile "$TORPID" --datadirectory "$TORDATA" --user "$TORUSER" --group "$TORGROUP" --log "notice file $TORLOG" &
  55. fi
  56.     fi
  57. }
  58. StopService ()
  59. {
  60.     if pid=$(GetPID Tor); then
  61. ConsoleMessage "Stopping Tor Service"
  62. kill -TERM "${pid}"
  63. # Just for sanity (sometimes necessary.)
  64. killall tor 2>/dev/null
  65.     else
  66. ConsoleMessage "Tor Service not responding."
  67. # Just for sanity (sometimes necessary.)
  68. killall tor 2>/dev/null
  69.     fi
  70. }
  71. RestartService () { StopService; StartService; }
  72. if [ "$#" = 0 ]; then
  73.   echo "Syntax: tor {start|stop}"
  74.   exit 1
  75. fi 
  76. RunService "$1"