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
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.
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.