web-dev-qa-db-fra.com

Supprimer les services de upstart

J'ai installé mysql (à partir du référentiel) sur une machine de développement (ordinateur portable) et je n'ai pas besoin que le démon s'exécute à chaque démarrage. J'ai copié /etc/init/mysql.conf dans /etc/init/mysql.conf.old, puis supprimé tout ce qui suit la ligne "start on". Cependant, au redémarrage, je ne peux plus démarrer mysqld avec upstart:

$ Sudo service mysql start
start: Unknown job: mysql

Cela échoue également (essayer quoi que ce soit à ce stade):

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

Ceci est mon script de démarrage:

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

C'est le script par défaut:

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

Tout ce que j'ai lu jusqu'à maintenant suggère qu'il est ainsi possible d'empêcher les services de démarrer au démarrage. Existe-t-il un meilleur moyen de faire cela ou ai-je commis une erreur dans le script de démarrage?

UPDATE: J'ai déplacé le fichier de configuration de sauvegarde hors de/etc/init et je l'ai redémarré en pensant qu'il y avait peut-être un conflit mais que le précurseur dit toujours Unknown job: mysql

9
xst

Si vous êtes sur Ubuntu 11.04 ou ultérieur, vous pouvez utiliser le mot clé manual et les fichiers .override dans/etc/init pour désactiver le démarrage automatique:

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

manual supprime efficacement la strophe start on de la configuration du travail.

Si vous êtes sur Ubuntu 10.04, vous pouvez faire ceci:

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

Le dernierstart on dans le fichier remplacera les précédents, cela devrait donc fonctionner, bien que cela suppose qu'aucun événement appelé never ne se produise.

17
SpamapS

De this post: La section "démarrer sur" doit être complète et correcte dans sa syntaxe.

start on runlevel [!0123456]

Cette ligne signifie exécuter lorsque le niveau d'exécution n'est pas dans [0,1,2,3,4,5,6] (ceux-ci sont les seuls niveaux d'exécution, donc ceci n'est jamais exécuté).

Une autre option consiste à utiliser chkconfig selon this post.

0
xst