关闭时手动 Upstart 服务会发生什么情况?

关闭时手动 Upstart 服务会发生什么情况?

如果manual在 init 或覆盖 Upstart 脚本中使用关键字,则不清楚服务关闭过程是否会启动或者是否会在关闭时被终止。

例如,当使用手动覆盖时,MySQL 的默认超时是否会延长(为其提供足够的时间来刷新缓冲区,如 init 脚本中指定的那样)?如果没有,是否最好使用设置start on never,或者手动启动的服务是否也需要手动关闭?

新贵食谱对此事没什么可说的。

答案1

我认为你一定忽略了一些东西,因为你提供的链接中清楚地说明了这一点:

5.2.1 观察

与系统关闭相关的一些要点如下:

[...]

  • Upstart 绝不会无条件地停止工作stop on

[...]

5.2.2 关机流程

[...]

运行的脚本之一是/etc/init.d/sendsigs

该脚本将终止任何尚未停止的剩余进程(包括 Upstart 进程)。

在这个sendsigs脚本中解释道:

Upstart 有一个设置终止超时的方法,因此作业作者可能希望我们等待超过 10 秒(就像 mysql 的情况一样)。(LP:#688541)

对于处于停止/终止状态的任何作业,我们将等待最多 300 秒。任何高于此时间的终止超时都将被关闭需求所覆盖。请注意上面的 seq 的重复使用,因为我们已经等待它们最多 10 秒。

答案2

手动节指的是启动一项作业。请参阅Upstart 技术概述:手册节。因此,覆盖的配置文件中定义的停止节将得到完全尊重。

对于 MySQL 服务器来说,定义/覆盖更为重要开始前开始后终止超时节。有关详细信息,请查看默认的 mysql.conf

cat /etc/init/mysql.conf

博客条目Ubuntu Upstart 用于自动启动和停止 MySQL关于如何改进默认 MySQL Upstart 配置文件有几个想法。

相关内容