diff --git a/bazarr/app/server.py b/bazarr/app/server.py index d56e1205b..250fa6c0a 100644 --- a/bazarr/app/server.py +++ b/bazarr/app/server.py @@ -4,7 +4,7 @@ import signal import warnings import logging import errno -from literals import EXIT_INTERRUPT, EXIT_NORMAL +from literals import EXIT_INTERRUPT, EXIT_NORMAL, EXIT_PORT_ALREADY_IN_USE_ERROR from utilities.central import restart_bazarr, stop_bazarr from waitress.server import create_server @@ -56,10 +56,17 @@ class Server: logging.exception("BAZARR cannot bind to specified IP, trying with default (0.0.0.0)") self.address = '0.0.0.0' self.connected = False + super(Server, self).__init__() elif error.errno == errno.EADDRINUSE: - logging.exception("BAZARR cannot bind to specified TCP port, trying with default (6767)") - self.port = '6767' - self.connected = False + if self.port != '6767': + logging.exception("BAZARR cannot bind to specified TCP port, trying with default (6767)") + self.port = '6767' + self.connected = False + super(Server, self).__init__() + else: + logging.exception("BAZARR cannot bind to default TCP port (6767) because it's already in use, " + "exiting...") + self.shutdown(EXIT_PORT_ALREADY_IN_USE_ERROR) else: logging.exception("BAZARR cannot start because of unhandled exception.") self.shutdown() diff --git a/bazarr/literals.py b/bazarr/literals.py index 9a5e7eb9a..a76fa2cee 100644 --- a/bazarr/literals.py +++ b/bazarr/literals.py @@ -28,3 +28,4 @@ EXIT_VALIDATION_ERROR = -101 EXIT_CONFIG_CREATE_ERROR = -102 EXIT_PYTHON_UPGRADE_NEEDED = -103 EXIT_REQUIREMENTS_ERROR = -104 +EXIT_PORT_ALREADY_IN_USE_ERROR = -105