NT Service installation does not handle "-f" flag
Aplin, Justin M
jmaplin at ufl.edu
Tue Jun 15 12:42:35 UTC 2010
Okay, Sebastian and I got this mostly figured out over IRC. There are
two separate issues that each make the other confusing as hell. For one,
Tor throws service-related errors when it's really working fine, and
two, NT-Service related errors are cryptic and useless.
To start off with, both the new and the old syntax work, although the
errors they throw will be different. Correct syntax below, respectively:
> tor --service install -option -f "C:\blah\torrc"
> tor -install -option -f "C:\blah\torrc"
The new/correct syntax installs the service correctly. However, Tor does
not quit after invoking the installation and continues to run as if you
executed tor.exe with a bunch of garbage options. You will most likely
get errors related to a nonexistent torrc, or bad syntax. Ignore them.
Fire up services.msc and look at the properties for "Tor Win32 Service".
Under "Path to executable:" You should see something like the below.
It's not strictly syntactically correct (there should be no quotes
around the -f), but it works without any issues.
> "C:\Program Files\Vidalia Bundle\Tor\tor.exe" --nt-service "-f"
> "C:\blah\torrc"
The important thing to remember here is to *declare your DataDirectory
in your torrc!* Without this, Tor is going to create duplicates. I would
personally recommend creating a Tor DataDirectory in the root of a
drive, because it makes handling permissions easy, which is the next
issue we have to tackle. Odds are at some point you'll run into an error
like this when trying to start your newly-installed service:
> Service failed to start : An exception occurred in the service when
> handling the control request.
Which is Windows' way of saying it's crapping out because of a
permissions issue. There is a special user named SERVICE under whom all
of the Windows system services are run. This user needs "Full Control"
access to the Tor DataDirectory and the torrc file. Be careful about
this. Accidentally giving control of %appdata% or %homepath% to every
single system service is more than a small security risk, which is why I
don't recommend using the default Tor and Vidalia folders in the
%appdata% directory. Doing so intelligently involves using advanced NTFS
permissions to give SERVICE "Read & Execute" permissions that apply to
"This folder only" from %appdata% all the way back to the root of the
drive, and "Full Control" permissions to Tor and Vidalia that apply to
"This folder, subfolders, and files". This is all assuming that your
torrc is in Vidalia and Tor is your DataDirectory.
Which is why it's infinitely easier to simply make a C:\Torservice
directory and grant SERVICE full control over it, and use it to store
torrc and as your DataDirectory. No need to stay up all night and bug
people on IRC about it...
Long story short? Plenty of bug reports to file and wikis to improve. I
know almost zero Windows users use Tor as an NT-Service, but I hope this
saves some adventurous soul a few hours of frustration. Thanks to
Sebastian and Goldstein for pitching in.
~Justin Aplin
More information about the tor-relays
mailing list