У меня установлен mysql (из репозитория) на компьютере разработчика (ноутбуке), и мне не нужно, чтобы демон запускался при каждой загрузке. Я скопировал /etc/init/mysql.conf в /etc/init/mysql.conf.old, а затем удалил все после строки «start on». Тем не менее, после перезагрузки я больше не могу запускать mysqld через upstart:
$ sudo service mysql start
start: Unknown job: mysql
Это также не удается (пробуя что-либо на этом этапе):
$ sudo service mysql restart
stop: Unknown job: mysql
start: Unknown job: mysql
Это мой скрипт выскочки: [ 118]
# /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]
Все, что я прочитал до сих пор, говорит о том, что именно так можно запретить запуск служб во время загрузки. Есть ли лучший способ сделать это или я допустил ошибку в сценарии upstart?
ОБНОВЛЕНИЕ : я переместил файл резервной копии файла конфигурации из / etc / init и перезагрузил мышление что, возможно, был конфликт, но выскочка все еще говорит Unknown job: mysql
Из этого поста: раздел «начало» должен быть полным и правильным в синтаксисе.
start on runlevel [!0123456]
Эта строка означает выполнение, когда уровень выполнения не находится в [0,1,2,3,4,5,6] (это единственные уровни выполнения, поэтому он никогда не выполняется).
Другой вариант использует chkconfig
согласно этой записи.
Если вы используете Ubuntu 11.04 или более позднюю версию, вы можете использовать ключевое слово manual
и файлы .override в / etc / init для отключения автоматического запуска:
sudo sh -c 'echo manual >> /etc/init/mysql.override'
manual
эффективно удаляет [ 114] строфа из конфигурации задания.
Если вы работаете в Ubuntu 10.04, вы можете сделать это:
sudo sh -c 'echo start on never >> /etc/init/mysql.conf'
последний start on
в файле переопределит все предыдущие, так что это должно работать, хотя предполагается, что нет события под названием never
.