diff --git a/management/univention-management-console/src/univention/management/console/protocol/server.py b/management/univention-management-console/src/univention/management/console/protocol/server.py index 14c788a84f..764da6ec54 100644 --- a/management/univention-management-console/src/univention/management/console/protocol/server.py +++ b/management/univention-management-console/src/univention/management/console/protocol/server.py @@ -38,6 +38,7 @@ Defines the basic class for an UMC server. import os import errno import fcntl +import signal import socket import resource import traceback @@ -371,6 +372,7 @@ class Server(signals.Provider): self._child_number = process.fork_processes(self.__processes, 0) except RuntimeError as exc: CORE.warn('Child process died: %s' % (exc,)) + os.kill(os.getpid(), signal.SIGTERM) raise SystemExit(str(exc)) if self._child_number is not None: self._children[self._child_number] = os.getpid() @@ -448,7 +450,6 @@ class Server(signals.Provider): if self._child_number is not None: self._children.pop(self._child_number, None) - self._child_number = None if self.__ssl and self.__port: notifier.socket_remove(self.connection) @@ -462,7 +463,7 @@ class Server(signals.Provider): notifier.socket_remove(self.__realunixsocket) self.__realunixsocket.close() self.__realunixsocket = None - if os.path.exists(self.__unix): + if self._child_number is not None and os.path.exists(self.__unix): os.unlink(self.__unix) self.__unix = None