Files
scylladb/dist/docker/redhat/docker-entrypoint.py
Israel Fruchter e3d764bb58 dist/docker: make docker-entrypoint.py pass signals to supervisord
Stopping docker currectly didn't pass the signals to supervisord,
hence scylla wasn't gracefully shutdown.

Fixes #6150
2020-04-11 12:45:54 +02:00

34 lines
819 B
Python
Executable File

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import os
import sys
import signal
import subprocess
import scyllasetup
import logging
import commandlineparser
logging.basicConfig(stream=sys.stdout, level=logging.DEBUG, format="%(message)s")
supervisord = None
def signal_handler(signum, frame):
supervisord.send_signal(signum)
signal.signal(signal.SIGINT, signal_handler)
signal.signal(signal.SIGTERM, signal_handler)
try:
arguments = commandlineparser.parse()
setup = scyllasetup.ScyllaSetup(arguments)
setup.developerMode()
setup.cpuSet()
setup.io()
setup.cqlshrc()
setup.arguments()
setup.set_housekeeping()
supervisord = subprocess.Popen(["/usr/bin/supervisord", "-c", "/etc/supervisord.conf"])
supervisord.wait()
except Exception:
logging.exception('failed!')