如何仅在需要时启动某些服务?

如何仅在需要时启动某些服务?

我有一台笔记本电脑。我经常用它上网和发邮件,有时也用它进行网页开发。用它进行网页开发,我需要运行 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,它们就会启动。

答案3

您可以使用链接中提供的程序看这里这里

相关内容