upstart 的 kill 超时设置是否有最大值?

upstart 的 kill 超时设置是否有最大值?

新贵kill timeout会让服务在退出前花一些时间正常关闭SIGKILL。我有一个服务可能需要几分钟或几小时才能正常退出(我希望它花这么长时间),这能kill timeout适用于几个小时的超时吗?或者 Upstart 允许的最大超时时间是多少?

我注意到launchd指定超时是否无限。Upstart 中可以实现无限超时吗ExitTimeOut0

答案1

代码没有指定任何内容。请参阅init/parse_job.c, 功能parse_kill

if (! strcmp (arg, "timeout")) {
    nih_local char *timearg = NULL;

    /* Update error position to the timeout value */
    *pos = a_pos;
    if (lineno)
        *lineno = a_lineno;

    timearg = nih_config_next_arg (NULL, file, len,
                       &a_pos, &a_lineno);
    if (! timearg)
        goto finish;

    errno = 0;
    class->kill_timeout = strtol (timearg, &endptr, 10);
    if (errno || *endptr || (class->kill_timeout < 0))
        nih_return_error (-1, PARSE_ILLEGAL_INTERVAL,
                  _(PARSE_ILLEGAL_INTERVAL_STR));
} 

除了的最大值的明显限制之外long,似乎您可以使用任何东西。

相关内容