aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--changes/bug12730-systemd-verify-config3
-rw-r--r--changes/bug12731-systemd-no-run-as-daemon9
-rw-r--r--contrib/dist/tor.service.in5
3 files changed, 16 insertions, 1 deletions
diff --git a/changes/bug12730-systemd-verify-config b/changes/bug12730-systemd-verify-config
new file mode 100644
index 0000000000..221633c78e
--- /dev/null
+++ b/changes/bug12730-systemd-verify-config
@@ -0,0 +1,3 @@
+ o Distribution:
+ - Verify configuration file via ExecStartPre in the systemd unit file.
+ Patch from intrigeri; resolves ticket 12730.
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 5d7670281b..2fe51c75d9 100644
--- a/contrib/dist/tor.service.in
+++ b/contrib/dist/tor.service.in
@@ -4,7 +4,10 @@ After = syslog.target network.target nss-lookup.target
[Service]
Type = simple
-ExecStart = @BINDIR@/tor -f @CONFDIR@/torrc
+ExecStartPre = @BINDIR@/tor -f @CONFDIR@/torrc --verify-config
+# 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