我通常使用service start/stop
或initctl start/stop
来启动或停止守护进程,但现在我正在寻找的是禁用守护进程在启动时启动示例mysqld
。
目前我正在做的事情是重命名/etc/init/mysql.conf
为/etc/init/mysql.conf.bak
,但在阅读了一些相关内容后,systemd
我发现它enable & disable
为上述任务提供了选项。
那么,ubuntu 12.04 中是否有类似的东西upstart
?
答案1
您可以通过运行以下命令来禁用服务:
sudo update-rc.d -f <service name> disable
手册页摘抄:
当使用禁用 [ S|2|3|4|5 ] 选项运行时, update-rc.d 通过将启动链接重命名为序列号相等的停止链接来修改脚本 /etc/init.d/name 的现有运行级别链接100 减去原始序列号的差值。
答案2
禁用和启动服务的正确方法是创建一个 XX.override 文件,
echo 'manual' > /etc/init/mysqld.override
这样 upstart 服务就不会自动启动
答案3
@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”文件中删除手动节)。
答案4
尝试导航到/etc/rc2.d
并重命名您想要的内容不是要在启动时运行:将(首字母大写)“S”更改为“K”(例如,S02mysql
改为K02mysql
)。如果你改变主意,只需扭转它即可。我认为 2 指的是运行级别,在这种情况下 2 是默认的多用户运行级别。也许这是您拥有大部分日常计算机使用的东西的地方。
编辑:阅读下面詹姆斯·奥戈尔曼的评论。