所以,我正在为
mysql开发一个upstart init脚本.应该是微不足道的吧?我的停止节看起来像:
kill timeout 30 stop on runlevel [016]
我现在关闭-r,MysqL对我的MyISAM表崩溃大吼大叫,就像我杀了我的MysqL进程一样.嘘.在重新启动之前,Upstart似乎没有等待MysqL退出.一些在谷歌上搜索发现我this link建议我做,而是:
stop on starting rc RUNLEVEL=[016]
事实上,这似乎解决了这个问题.
但是:WFT?本质上,我想确保在尝试卸载本地文件系统之前停止MysqL.这是正确的方法吗?为什么我在运行级别节上停止不等待MysqL在切换运行级别之前停止?
并且:这是你知道的,记录在任何地方吗?
这个问题实际上是由Upstarts在Ubuntu上处理Upstart作业和SystemV服务的灵活性引起的.
原文链接:https://www.f2er.com/ubuntu/348349.html有关事件的信息,查看的好地方是系统上的手册页.如果您正在运行Ubuntu Natty或更新版本,那么您现在将拥有新手 – 事件(7):
man 7 upstart-events
这为您提供了大量信息.这是该页面的(大部分)在线版本:
http://upstart.ubuntu.com/cookbook/#ubuntu-well-known-events-ubuntu-specific
目前,Ubuntu系统的关闭实际上是由SysV方面完成的(由于历史原因).如果你’停在运行级别[016]’,你的工作将在发出运行级别事件时开始停止.但是,如果花费太长时间,系统的SystemV部分(/etc/init.d/*)将实际控制并关闭系统.然而,如果你’停止启动rc RUNLEVEL = [016]’,Upstart(不是SystemV)将运行你的工作,一旦MysqL停止,然后继续启动SystemV关闭序列.
Upstart Cookbook包含很多这样的例子:
> http://upstart.ubuntu.com/cookbook/
> http://upstart.ubuntu.com/cookbook/upstart_cookbook.pdf