mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-27 13:53:31 +01:00
send PID of the main daemon to supervisor
If running under systemd, notify the supervisor about current PID of Tor daemon. This makes systemd unit simpler and more robust: it will do the right thing regardless of RunAsDaemon settings.
This commit is contained in:
parent
180ecd6a2b
commit
b17918726d
7
contrib/dist/tor.service.in
vendored
7
contrib/dist/tor.service.in
vendored
@ -3,11 +3,10 @@ Description = Anonymizing overlay network for TCP
|
||||
After = syslog.target network.target nss-lookup.target
|
||||
|
||||
[Service]
|
||||
Type = simple
|
||||
Type = notify
|
||||
NotifyAccess = all
|
||||
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
|
||||
ExecStart = @BINDIR@/tor -f @CONFDIR@/torrc
|
||||
ExecReload = /bin/kill -HUP ${MAINPID}
|
||||
KillSignal = SIGINT
|
||||
TimeoutSec = 30
|
||||
|
@ -55,6 +55,16 @@
|
||||
|
||||
#include "procmon.h"
|
||||
|
||||
#ifdef HAVE_SYSTEMD
|
||||
# if defined(__COVERITY__) && !defined(__INCLUDE_LEVEL__)
|
||||
/* Systemd's use of gcc's __INCLUDE_LEVEL__ extension macro appears to confuse
|
||||
* Coverity. Here's a kludge to unconfuse it.
|
||||
*/
|
||||
# define __INCLUDE_LEVEL__ 2
|
||||
# endif
|
||||
#include <systemd/sd-daemon.h>
|
||||
#endif
|
||||
|
||||
/* From main.c */
|
||||
extern int quiet_level;
|
||||
|
||||
@ -1018,6 +1028,11 @@ options_act_reversible(const or_options_t *old_options, char **msg)
|
||||
start_daemon();
|
||||
}
|
||||
|
||||
#ifdef HAVE_SYSTEMD
|
||||
/* Our PID may have changed, inform supervisor */
|
||||
sd_notifyf(0, "MAINPID=%ld\n", (long int)getpid());
|
||||
#endif
|
||||
|
||||
#ifndef HAVE_SYS_UN_H
|
||||
if (options->ControlSocket || options->ControlSocketsGroupWritable) {
|
||||
*msg = tor_strdup("Unix domain sockets (ControlSocket) not supported "
|
||||
|
Loading…
Reference in New Issue
Block a user