Удалить услуги из выскочки
У меня установлен 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
Это мой сценарий выскочки:
# /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]
Все, что я читал до сих пор, говорит о том, что таким образом можно предотвратить запуск служб во время загрузки. Есть ли лучший способ сделать это или я сделал ошибку в сценарии выскочка?
ОБНОВЛЕНИЕ: я переместил файл резервной копии файла конфигурации из / etc / init и перезагрузил компьютер, думая, что, возможно, был конфликт, но выскочка все еще говорит Unknown job: mysql
2 ответа
Если вы используете Ubuntu 11.04 или более позднюю версию, вы можете использовать manual файлы ключевых слов и.override в /etc/init для отключения автоматического запуска:
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,
Из этого поста: раздел "начать с" должен быть полным и правильным в синтаксисе.
start on runlevel [!0123456]
Эта строка означает выполнение, когда уровень выполнения не находится в [0,1,2,3,4,5,6] (это единственные уровни выполнения, поэтому он никогда не запускается).
Другой вариант использует chkconfig согласно этому посту.