소스 검색

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.
intrigeri 9 년 전
부모
커밋
8b470ee4b5
2개의 변경된 파일12개의 추가작업 그리고 1개의 파일을 삭제
  1. 9 0
      changes/bug12731-systemd-no-run-as-daemon
  2. 3 1
      contrib/dist/tor.service.in

+ 9 - 0
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.

+ 3 - 1
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