新贵:非新贵过程后开始服务

在Ubuntu 10.04上,我需要用暴发户来启动我的服务,但是只有当mysql启动并运行的时候。

问题是,mysql本身不是由暴发户,所以我不能使用“开始”function。

我能做什么 ?

    你有几个select:

    1)让mysql通知Upstart它已经启动了一个事件

    initctl emit mysql-started “或类似的。

    这可以通过将initctl调用添加到/etc/init.d/mysql来处理。

    2)从正常的SysV运行级别禁用MySQL,并创build一个包装Upstart作业启动它(不是这不处理停止 – 只是一个例子):

     cat >>/etc/init/mysql-sysv.conf<<EOT # wait for SysV job to finish start on stopped rc exec /etc/init.d/mysql start EOT 

    然后,你的工作“ start on started mysql-sysv ”。

    这里的问题是,如果有人(或某些系统工具自动)将/etc/rc?.d链接重新添加到原始的/etc/init.d/mysql服务脚本,将会遇到麻烦。 此外,你可能会发现,直到主要的pid开始之后 ,mysql才准备好。 数据库是有问题的,因为它们可能需要一些时间才能“联机”,即使它们已经开始(转换日志重放等)。

    3)创build一个新的工作(“服务员”),“开始停止rc”(即所有的SysV工作声称完成时开始),然后轮询等待mysql准备就绪,然后退出。 有你的工作“停止服务员开始”。

    4)将mysql转换成Upstart作业(最好的select)。 在这里有一个起始的MySQLconfiguration: https : //github.com/devo-ps/init-scripts/tree/master/mysql/ubuntu

    如何使用

     pre-start exec /etc/init.d/mysql start 

    在你的新贵工作里面!