"Using the kill command", like, something built into your server protocol? Or "using the kill command" like, running the UNIX "kill" program? If it's the latter, then that's pretty much what
you should expect -- "kill" isn't the right way to shut down a process cleanly. If you want a nice quiet way to turn your server off, provide another ServerSocket listening on a special port, and when that port receives a connection (or a connection followed by some special input sequence) then have the server exit.