我的问题是我的 apache2 没有在启动时启动。调试后我发现网页初始化脚本试图连接到当时未运行的 MySQL。
我的操作系统是 Ubuntu Server 10.04.4
apache2 引导设置使用update-rc.d apache2 defaults 21
它在以下位置创建脚本/etc/rcX
:
root@ser:~# find /etc/rc* -name *apache*
/etc/rc0.d/K21apache2
/etc/rc1.d/K21apache2
/etc/rc2.d/S21apache2
/etc/rc3.d/S21apache2
/etc/rc4.d/S21apache2
/etc/rc5.d/S21apache2
/etc/rc6.d/K21apache2
和电话/etc/init.d/apache2
mysql 是由 Ubuntu 的新贵开始的:
root@ser:~# ls /etc/init | grep mysql
mysql.conf
如何强制 apache2 在 mysql 之后启动?
更新:
由于我已经收到了一些评论,这里澄清一下:
Apache作为sysvinit脚本启动,/etc/rc*.d/
而 mysql是. Mysql 未在下面列出,因此我无法通过更改字母顺序来更改优先级!/etc/init/
/etc/rc*.d
回答我自己的问题:
这是在启动 mysqld 之前阻止 apache 脚本的快速而肮脏的方法:
替换中的两行
/etc/init.d/apache2
和
如果 mysql 正在运行,这将每隔一秒检查一次(最长检查时间为 60 秒)。
但是应该有更好的方法来定义 sysvinit 和 upstart 服务之间的依赖关系?!