我有一台笔记本电脑。我经常用它上网和发邮件,有时也用它进行网页开发。用它进行网页开发,我需要运行 apache2 和 mysql 服务器,但通常不需要。
我希望正常启动时不启动 apache 和 mysql,以节省电量、减少启动时间等,但能够在需要时启动这些服务。
以前我可能使用运行级别来实现这一点,但据我所知,现在这有点过时了。在 Precise 中实现这一点的最佳方法是什么?
答案1
要阻止 mysql 在启动时启动:
sudo echo "manual" | sudo tee /etc/init/mysql.override
要阻止 apache2 在启动时启动:
sudo update-rc.d apache2 disable 2
无论何时您需要启动 mysql 或 apache2,您需要做的就是自己启动服务(您也可以手动停止两者)。
您可以使用
sudo apache2ctl {start|stop|restart}
为此,
sudo service mysql {start|stop}
对于 mysql。
答案2
使用旧的运行级别来实现此目的的一种方法:
MySQL现在使用 upstart 脚本,但其中仍然讨论运行级别。编辑/etc/init/mysql.conf
并更改行,如下所示:
-start on runlevel [2345]
-stop on starting rc RUNLEVEL=[016]
+start on runlevel [345]
+stop on starting rc RUNLEVEL=[0126]
Apache2仍然使用运行级别 rc.Nd 符号链接:
sudo update-rc.d -f apache2 remove
sudo update-rc.d apache2 start 91 3 4 5 . stop 09 0 1 6 .
然后在正常启动(运行级别 2)时,它们将不会启动,而当您启动时sudo telinit 3
,它们就会启动。