When we start the discovery service we fork the gateway process and then call the discovery main loop in the forked process. This means that the discovery process contains all the information from the gateway, like the SPDK and monitor client PIDs. The result is that in the discovery goes down it tries to kill these processes. It seems to fail, probably for Linux security issues. Optimally we should have a clean discovery process which doesn't share the gateway code. At least we need to clean the forked process so any non-discovery information is reset to None.