(适用于Ubuntu10.04~12.04)
Ubuntu 很早就不再使用System V方式init系统了,而是使用事件驱动的Upstart方式,建议那些都不自己实践的人好好看下两者的区别。
Upstart是兼容System V的配置方式的,但主要的服务配置放在 /etc/init 下,这也就是为什么修改 /etc/rc${runlevel}.d/ (Ubuntu默认启动runlevel2,也就是/etc/rc2.d/)下的MySQL启动配置并不能真正起到禁止MySQL自启动的原因(比如使用命令 sudo update-rc.d -f openarena-server remove、或者使用其他管理工具如bum等)——如果是通过apt安装MySQL,它的启动配置文件是写入到/etc/init中的。
我忘记在 /etc/rc2.d/ 下有没有mySQL的启动项了,如果有,由于Ubuntu兼容System V,因此也需要取消其自动启动:
sudo update-rc.d -f openarena-server remove
或者使用bum等工具,或者直接将 /etc/rc${runlevel}.d/ 下的 mysql 配置文件名的S改成K。
此外,我们需要编辑 /etc/init/ 下的 mysql.conf 文件,找到下面几行:
start on (net-device-up
and local-filesystems
and runlevel [2345])
stop on runlevel [016]
把runlevel[2345]改成 runlevel[345](假如你使用Ubuntu,默认启动runlevel2的情形下)、或者直接改成 runlevel[!0123456],就可以避免MySQL的开机自动启动了。
其他服务也类似,只要理解了Upstart的原理就没问题了。建议那些抄来抄去的写手们多动手实践一下,不然写出来的东西屁都不是,毁人不倦。