@Override
            public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
                Object signal = args[0];
                log.info("Terminating process due to signal {}", signal);
                Object handler = jvmSignalHandlers.get(getName(signal));
                if (handler != null)
                    handle(handler, signal);
                return null;
            }
Register signal handler to log termination due to SIGTERM, SIGHUP and SIGINT (control-c). This method
does not currently work on Windows.

@implNote sun.misc.Signal and sun.misc.SignalHandler are described as "not encapsulated" in
http://openjdk.java.net/jeps/260. However, they are not available in the compile classpath if the `--release`
flag is used. As a workaround, we rely on reflection.
clients/src/main/java/org/apache/kafka/common/utils/LoggingSignalHandler.java