我通常使用service start/stop
或initctl start/stop
启动或停止守护进程,但是现在我要寻找的是从启动示例中禁用守护进程mysqld
。
当前正在做的是重命名/etc/init/mysql.conf
,/etc/init/mysql.conf.bak
但是在阅读了一些有关的信息之后,systemd
我知道它为enable & disable
上述任务提供了选择。
所以,在ubuntu 12.04中是否有类似的东西upstart
。
我通常使用service start/stop
或initctl start/stop
启动或停止守护进程,但是现在我要寻找的是从启动示例中禁用守护进程mysqld
。
当前正在做的是重命名/etc/init/mysql.conf
,/etc/init/mysql.conf.bak
但是在阅读了一些有关的信息之后,systemd
我知道它为enable & disable
上述任务提供了选择。
所以,在ubuntu 12.04中是否有类似的东西upstart
。
Answers:
您可以通过运行以下命令来禁用服务:
sudo update-rc.d -f <service name> disable
手册页摘录:
当使用disable [S | 2 | 3 | 4 | 5]选项运行时,update-rc.d通过重命名开始链接以停止序列号等于等于的链接来修改脚本/etc/init.d/name的现有运行级别链接。相差100减去原始序列号。
禁用和启动服务的正确方法是创建XX.override文件,
echo 'manual' > /etc/init/mysqld.override
这样,新贵服务将不会自动启动
Ubuntu 12.04
吗?
@RSK yes, why don't you just give it a try?
我想是因为对这个页面上的每个建议都“尝试”重新启动系统非常不方便。
@ warl0ck正确;希望补充一下,该信息在Upstart文档中有很好的记录:http : //upstart.ubuntu.com/cookbook/#disabling-a-job-from-automatically-starting
特别:
使用Upstart 1.3,您可以使用替代文件和手动节以更简单的方式实现相同的结果[27]:
# echo "manual" >> /etc/init/myjob.override
请注意,通过执行以下操作可以达到相同的效果:
# echo "manual" >> /etc/init/myjob.conf
但是,使用替代功能意味着您可以保持原始作业配置文件不变。
要还原为原始行为,请删除或重命名覆盖文件(或从“ .conf”文件中删除手动节)。
还有一个不错的软件可以协助完成此任务。它称为rcconf。
只需使用以下命令下载它:
sudo apt-get install rcconf
并与命令一起使用
rcconf
您会获得一个不错的(命令行)界面来禁用/启用服务。
尝试导航至/etc/rc2.d
并重命名您希望在启动时不运行的内容:将(首字母大写)“ S”更改为“ K”(例如S02mysql
至K02mysql
)。如果您改变主意,只需扭转一下。我认为2是指运行级别,在这种情况下2是默认的多用户运行级别。也许那是您拥有大部分日常计算机使用内容的地方。
编辑:阅读下面的詹姆斯·奥戈曼的评论。
who -r
或查看当前的运行级别runlevel
。
who --runlevel
。
init
将在关机时运行“ KXXscript stop”。您应该删除符号链接或从实际的初始化脚本中删除执行位。我相信Debian会使用它update-rc.d
来管理。RHEL(及其衍生产品)的使用chkconfig
。
使用Upstart,服务配置位于中的文件中/etc/init/
。例如,使用配置文件控制ssh/etc/init/ssh.conf
该文件指定“事件”,将提示Upstart启动“作业”。
为了防止服务自动启动,可以使用以下几种方法之一:
a)重命名service.conf文件,使其不以.conf结尾
b)注释掉service.conf文件中的“ start on”行。
在较新版本的upstart(至少从v1.3开始)中,您还可以使用service.override文件覆盖在线开始,因此您可以使用:
# echo manual > /etc/init/service.override
最后,您还可以在服务的配置文件末尾添加关键字“ manual”,例如通过:
# echo manual >> /etc/init/service.conf
请注意,这不会“停止”正在运行的服务,只是阻止了它自动启动。设置为“手动”启动时,您可以使用initctl控制服务,例如停止和启动SSH守护程序:
# initctl stop ssh
# initctl start ssh
可以说,关于Upstart的最佳文档是在http://upstart.ubuntu.com/cookbook/
第11.44节介绍了“禁用自动启动服务,此处:http : //upstart.ubuntu.com/cookbook/#disabling-a-job-from-automatically-starting
systemctl [enable|disable|is-enabled] mysqld.service