从暴发户中删除服务


9

我已经在开发计算机(笔记本电脑)上安装了mysql(从存储库中安装),并且不需要每次启动时都运行的守护程序。我已经将/etc/init/mysql.conf复制到/etc/init/mysql.conf.old,然后删除“开始于”行之后的所有内容。但是,重新启动后,我无法再通过upstart启动mysqld了:

$ sudo service mysql start
start: Unknown job: mysql

这也会失败(此时尝试任何操作):

$ sudo service mysql restart
stop: Unknown job: mysql
start: Unknown job: mysql

这是我的暴发户脚本:

# /etc/init/mysql.conf
....
start on
stop on starting rc RUNLEVEL=[016]

这是默认脚本:

# /etc/init/mysql.conf.old
....
start on runlevel [2345]
stop on starting rc RUNLEVEL=[016]

到目前为止,我所阅读的所有内容都表明,这可以防止在启动时启动服务。有没有更好的方法可以做到这一点,或者我在新贵脚本中犯了一个错误?

更新:我已经将备份conf文件从/ etc / init中移出并重新启动,以为可能存在冲突,但是暴发户仍然说Unknown job: mysql


检查/ var / log / syslog,它可能会告诉您/etc/init/mysql.conf中存在语法问题。您也可以尝试为'init-checkconf /etc/init/mysql.conf'
SpamapS

Answers:


17

如果您使用的是Ubuntu 11.04或更高版本,则可以manual在/ etc / init中使用关键字和.override文件来禁用自动启动:

sudo sh -c 'echo manual >> /etc/init/mysql.override'

manual有效地start on从作业的配置中删除该节。

如果您使用的是Ubuntu 10.04,则可以执行以下操作:

sudo sh -c 'echo start on never >> /etc/init/mysql.conf'

文件中的最后一个 start on将覆盖任何先前的文件,因此这应该起作用,尽管它假定没有事件被调用never


0

这篇文章中:“开始”部分需要完整且语法正确。

start on runlevel [!0123456]

该行表示当运行级别不在[0,1,2,3,4,5,6]中时执行(这些是唯一的运行级别,因此永远不会运行)。

另一种选择是使用chkconfig按照职。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.