Commit 3a6be55e authored by Jeremy Hylton's avatar Jeremy Hylton

Use kill, when possible, to shutdown a stale test server.

parent b6161405
......@@ -20,6 +20,7 @@ import errno
import getopt
import random
import socket
import signal
import asyncore
import threading
import ThreadedAsync.LoopCallback
......@@ -127,14 +128,26 @@ class Suicide(threading.Thread):
# chance that the server gives up before the clients.
time.sleep(330)
log("zeoserver", "suicide thread invoking shutdown")
# If the server hasn't shut down yet, the client may not be
# able to connect to it. If so, try to kill the process to
# force it to shutdown.
if hasattr(os, "kill"):
os.kill(pid, signal.SIGTERM)
time.sleep(5)
os.kill(pid, signal.SIGKILL)
else:
from ZEO.tests.forker import shutdown_zeo_server
# XXX If the -k option was given to zeoserver, then the process will
# go away but the temp files won't get cleaned up.
# XXX If the -k option was given to zeoserver, then the
# process will go away but the temp files won't get
# cleaned up.
shutdown_zeo_server(self._adminaddr)
def main():
label = 'zeoserver:%d' % os.getpid()
global pid
pid = os.getpid()
label = 'zeoserver:%d' % pid
log(label, 'starting')
# We don't do much sanity checking of the arguments, since if we get it
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment