aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2014-07-30 14:00:21 -0400
committerNick Mathewson <nickm@torproject.org>2014-07-30 14:00:21 -0400
commit74a8555d2be2ce9d33e9814212e5de49ba089274 (patch)
tree89672a970dab21b763886080d4c78cb3988dd6ac
parent88590ed3a66423fd4de3ad10dc67f1c9b18bf047 (diff)
parent8b470ee4b54582b599debf5ab5b996eb06525093 (diff)
downloadtor-74a8555d2be2ce9d33e9814212e5de49ba089274.tar.gz
tor-74a8555d2be2ce9d33e9814212e5de49ba089274.zip
Merge remote-tracking branch 'intrigeri/bug12731-systemd-no-run-as-daemon' into maint-0.2.5
Conflicts: contrib/dist/tor.service.in
-rw-r--r--changes/bug12731-systemd-no-run-as-daemon9
-rw-r--r--contrib/dist/tor.service.in4
2 files changed, 12 insertions, 1 deletions
diff --git a/changes/bug12731-systemd-no-run-as-daemon b/changes/bug12731-systemd-no-run-as-daemon
new file mode 100644
index 0000000000..f92e5aff00
--- /dev/null
+++ b/changes/bug12731-systemd-no-run-as-daemon
@@ -0,0 +1,9 @@
+ o Distribution:
+ - Explicitly disable RunAsDaemon in the systemd unit file.
+ Our current systemd unit uses "Type = simple", so systemd does
+ not expect tor to fork. If the user has "RunAsDaemon 1" in their
+ torrc, then things won't work as expected. This is e.g. the case
+ on Debian (and derivatives), since there we pass
+ "--defaults-torrc /usr/share/tor/tor-service-defaults-torrc"
+ (that contains "RunAsDaemon 1") by default.
+ Patch by intrigeri; resolves ticket 12731.
diff --git a/contrib/dist/tor.service.in b/contrib/dist/tor.service.in
index 9914a78895..2fe51c75d9 100644
--- a/contrib/dist/tor.service.in
+++ b/contrib/dist/tor.service.in
@@ -5,7 +5,9 @@ After = syslog.target network.target nss-lookup.target
[Service]
Type = simple
ExecStartPre = @BINDIR@/tor -f @CONFDIR@/torrc --verify-config
-ExecStart = @BINDIR@/tor -f @CONFDIR@/torrc
+# A torrc that has "RunAsDaemon 1" won't work with the "simple" service type;
+# let's explicitly override it.
+ExecStart = @BINDIR@/tor -f @CONFDIR@/torrc --RunAsDaemon 0
ExecReload = /bin/kill -HUP ${MAINPID}
KillSignal = SIGINT
TimeoutSec = 30