如果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 配置文件有几个想法。