Only register exit function if a PID file was created
The function only deletes the PID file.
This commit is contained in:
parent
6762fc1cad
commit
9cd9ad9a02
@ -116,7 +116,6 @@ def run():
|
||||
|
||||
def daemonize(configuration, logger):
|
||||
"""Fork and decouple if Radicale is configured as daemon."""
|
||||
if configuration.getboolean("server", "daemon"):
|
||||
# Check and create PID file in a race-free manner
|
||||
if configuration.get("server", "pid"):
|
||||
try:
|
||||
@ -136,6 +135,14 @@ def daemonize(configuration, logger):
|
||||
sys.exit()
|
||||
if configuration.get("server", "pid"):
|
||||
os.close(pid_fd)
|
||||
|
||||
# Register exit function
|
||||
def cleanup():
|
||||
"""Remove the PID files."""
|
||||
logger.debug("Cleaning up")
|
||||
# Remove PID file
|
||||
os.unlink(pid_path)
|
||||
atexit.register(cleanup)
|
||||
# Decouple environment
|
||||
os.chdir("/")
|
||||
os.setsid()
|
||||
@ -145,17 +152,6 @@ def daemonize(configuration, logger):
|
||||
os.dup2(null_out.fileno(), sys.stdout.fileno())
|
||||
os.dup2(null_out.fileno(), sys.stderr.fileno())
|
||||
|
||||
# Register exit function
|
||||
def cleanup():
|
||||
"""Remove the PID files."""
|
||||
logger.debug("Cleaning up")
|
||||
# Remove PID file
|
||||
if (configuration.get("server", "pid") and
|
||||
configuration.getboolean("server", "daemon")):
|
||||
os.unlink(pid_path)
|
||||
|
||||
atexit.register(cleanup)
|
||||
|
||||
|
||||
def serve(configuration, logger):
|
||||
"""Serve radicale from configuration."""
|
||||
@ -234,6 +230,7 @@ def serve(configuration, logger):
|
||||
else:
|
||||
# Fallback to busy waiting
|
||||
select_timeout = 1.0
|
||||
if configuration.getboolean("server", "daemon"):
|
||||
daemonize(configuration, logger)
|
||||
logger.debug("Radicale server ready")
|
||||
while not shutdown_program:
|
||||
|
Loading…
Reference in New Issue
Block a user