human
Here's a good function header given the following:
I wrote the below code

    options.parse_command_line()
    proc_name = os.path.basename(sys.argv[0])
    if (proc_name and (process_util.GetProcessName() is None)):
        process_util.SetProcessName(proc_name)
    io_loop = ioloop.IOLoop.instance()
    if (options.options.blocking_log_threshold is not None):
        io_loop.set_blocking_log_threshold(options.options.blocking_log_threshold)
    def _OnSignal(signum, frame):
        logging.info(('process    stopped    with    signal    %d' % signum))
        io_loop.stop()
    signal.signal(signal.SIGHUP, _OnSignal)
    signal.signal(signal.SIGINT, _OnSignal)
    signal.signal(signal.SIGQUIT, _OnSignal)
    signal.signal(signal.SIGTERM, _OnSignal)
    @gen.coroutine
    def _InvokeCallback(wrapped_callback):
        'Wraps    "run_callback"    in    function    that    returns    the    Future    that    IOLoop.run_sync    requires.'
        (yield gen.Task(wrapped_callback))
    shutdown_by_exception = False
    try:
        if server_logging:
            logging.getLogger().setLevel(logging.INFO)
            logging.getLogger().handlers[0].setLevel(logging.INFO)
        io_loop.run_sync(partial(_Init, init_db=init_db, server_logging=server_logging))
        io_loop.run_sync(partial(_InvokeCallback, run_callback))
        if (shutdown_callback is not None):
            io_loop.run_sync(partial(_InvokeCallback, shutdown_callback))
    except Exception as ex:
        if (not isinstance(ex, ioloop.TimeoutError)):
            logging.exception(('unhandled    exception    in    %s' % sys.argv[0]))
            shutdown_by_exception = True
    db_client.ShutdownDB()
    io_loop.run_sync(server_log.FinishServerLog)
    if shutdown_by_exception:
        sys.exit(1)

What's a good function header?
assistant
#Here's a good function header.

def InitAndRun(run_callback, shutdown_callback=None, init_db=True, server_logging=True):