[tor-commits] [tor/release-0.2.5] Explicitly disable RunAsDaemon in the systemd unit file (#12731).

nickm at torproject.org nickm at torproject.org
Mon Aug 18 13:40:07 UTC 2014


commit 8b470ee4b54582b599debf5ab5b996eb06525093
Author: intrigeri <intrigeri at boum.org>
Date:   Tue Jul 29 12:23:04 2014 +0000

    Explicitly disable RunAsDaemon in the systemd unit file (#12731).
    
    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.
    
    The only solution I could find is to explicitly pass "--RunAsDaemon 0" when
    starting tor from the systemd unit file, which this commit does.
---
 changes/bug12731-systemd-no-run-as-daemon |    9 +++++++++
 contrib/dist/tor.service.in               |    4 +++-
 2 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/changes/bug12731-systemd-no-run-as-daemon b/changes/bug12731-systemd-no-run-as-daemon
new file mode 100644
index 0000000..f92e5af
--- /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 5d76702..1d52f62 100644
--- a/contrib/dist/tor.service.in
+++ b/contrib/dist/tor.service.in
@@ -4,7 +4,9 @@ After = syslog.target network.target nss-lookup.target
 
 [Service]
 Type = simple
-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





More information about the tor-commits mailing list