Ubuntu12.04:如何在启动时禁用守护进程

Ran*_*Rag 23 ubuntu upstart daemon

我通常使用service start/stopinitctl start/stop来启动或停止守护进程,但现在我正在寻找的是禁用守护进程在启动示例中启动mysqld

目前我正在做的是重命名/etc/init/mysql.conf/etc/init/mysql.conf.bak但在阅读了一些关于systemd我开始知道它为enable & disable上述任务提供选项后。

那么,ubuntu 12.04 中是否有类似的东西upstart

Mar*_*hen 27

您可以通过运行以下命令禁用服务:

sudo update-rc.d -f <service name> disable
Run Code Online (Sandbox Code Playgroud)

手册页摘录:

当使用禁用 [ S|2|3|4|5 ] 选项运行时,update-rc.d 修改脚本 /etc/init.d/name 的现有运行级别链接,方法是将开始链接重命名为序列号相等的停止链接到 100 减去原始序列号的差值。

  • 问题是关于使用 mysql 作为特定主题案例的假设或一般情况。OP 似乎至少部分意识到了这个答案,但是注意到一些有用的包不支持也不会支持新贵格式(例如 webmin 和许多在评论时从源包自建) . 这意味着此方法可以是上下文的有效部分答案,就像 warl0ck 和 Mark 的答案所做的那样,以解决随包管理器安装的假设 mysql 服务的特定点。 (3认同)
  • 我没有足够的声誉来否决这一点,而且不加解释就这样做是不礼貌的,所以只是评论:@Noob 提出的问题与使用 Upstart(/etc/init/*.conf 配置)的 Ubuntu 12.04 有关文件)适用于大多数系统守护程序(如@Noob 所述),而您的建议仅适用于使用 /etc/init.d/* (旧的 SysV 样式)中的脚本开始的守护程序。编辑:为了记录,warl0ck 有正确的答案(谢谢!)。 (2认同)

dai*_*isy 20

禁用和启动服务的正确方法是创建一个 XX.override 文件,

echo 'manual' > /etc/init/mysqld.override

这样新贵服务就不会自动启动


Mar*_*sop 7

@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”文件中删除手动节)。


小智 5

还有一个很好的软件可以帮助解决这个问题。它被称为rcconf。

只需使用以下方法下载:

sudo apt-get install rcconf
Run Code Online (Sandbox Code Playgroud)

并将其与命令一起使用

rcconf
Run Code Online (Sandbox Code Playgroud)

您将获得一个不错的(命令行)界面来禁用/启用服务。