diff --git a/changes/bug12731-systemd-no-run-as-daemon b/changes/bug12731-systemd-no-run-as-daemon new file mode 100644 index 000000000..f92e5aff0 --- /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 9914a7889..2fe51c75d 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