27 votes

Comment désactiver un service upstart dans ubuntu 10.10 ?

Dans la 10.10, upstart est utilisé à la place de sysvinit.

Il est possible de supprimer les services upstart gênants que vous ne voulez pas en supprimant le fichier approprié dans /etc/init/blah.conf

Toutefois, cette approche semble lourde. Comment configurer correctement upstart pour pouvoir activer et désactiver sélectivement ces services via la ligne de commande ?

À titre d'exemple pratique, les réponses données ici pour désactiver gdm à l'aide de rcconf ne fonctionnent plus : Comment empêcher GDM de s'exécuter au démarrage sur Ubuntu ?

19voto

Majenko Points 31077

Si vous regardez dans /etc/init.d vous remarquerez que tous les services qui sont configurés à travers upstart sont juste des liens symboliques vers /lib/init/upstart donc les supprimer de /etc/init.d supprime juste le lien - pas le script.

Si vous souhaitez disposer d'une interface pour cela, vous pouvez installer le logiciel chkconfig paquet ( apt-get install chkconfig ) qui donne un outil de ligne de commande utile :

# chkconfig --list
acpi-support              0:off  1:off  2:on   3:on   4:on   5:on   6:off
acpid                     0:off  1:off  2:off  3:off  4:off  5:off  6:off
alsa-mixer-save           0:off  1:off  2:off  3:off  4:off  5:off  6:off
anacron                   0:off  1:off  2:off  3:off  4:off  5:off  6:off
apache2                   0:off  1:off  2:on   3:on   4:on   5:on   6:off
apparmor                  0:off  1:off  2:off  3:off  4:off  5:off  6:off  S:on 
apport                    0:off  1:off  2:off  3:off  4:off  5:off  6:off
atd                       0:off  1:off  2:off  3:off  4:off  5:off  6:off
.... and so on ....

Vous pouvez activer / désactiver des services pour des niveaux d'exécution spécifiques (ou simplement les activer et les désactiver) avec :

# chkconfig -s <service> <state/runlevels>

par exemple :

# chkconfig -s gdm off

pour le désactiver complètement,

# chkconfig -s gdm on

pour l'activer avec les valeurs par défautm ou

# chkconfig -s gdm 34

pour ne l'activer que pour les niveaux de fonctionnement 3 et 4.

Vous trouverez généralement cette commande sur les systèmes basés sur RHEL (CentOS, Fedora, etc.).

UPDATE

Ceci est spécifique à Ubuntu et à gdm / kdm / quoi que ce soit.

Quand gdm démarre, il appelle un fichier de configuration de démarrage /etc/init/gdm.conf

Ce fichier fait ensuite référence à /etc/X11/default-display-manager pour voir si c'est le gestionnaire d'affichage par défaut du système - si c'est le cas, il démarre.

Le /etc/X11/default-display-manager contient juste :

/usr/sbin/gdm

Vous pouvez le remplacer par un autre gestionnaire d'affichage, ou supprimer entièrement le fichier et il ne lancera pas gdm.

Une ligne du fichier /etc/init/gdm.conf :

[ ! -f /etc/X11/default-display-manager -o "$(cat /etc/X11/default-display-manager 2>/dev/null)" = "/usr/sbin/gdm" ] || { stop; exit 0; }

Il est dit "Si le fichier /etc/X11/default-display-manager n'existe pas, ou s'il ne contient pas /usr/sbin/gdm puis exit"

5voto

Saurav Kumar Points 14168

J'ai toujours trouvé que le sysv-rc-conf Cet outil est très utile et son interface est très agréable et facile à utiliser.

installez-le comme ceci :

sudo apt-get update
sudo apt-get install sysv-rc-conf

Utilisez-le comme ceci :

sudo sysv-rc-conf

4voto

Izzy Points 3527

Il suffit de jeter un coup d'œil à man 5 init et vous trouverez une solution plus appropriée. Petit exemple : Disons que nous avons un service appelé "foobar", il y aurait donc un fichier appelé /etc/init/foobar.conf avec sa configuration de démarrage. Maintenant, vous ne voulez pas supprimer ce fichier, ni le modifier -- mais vous ne voulez pas non plus que ce service fonctionne ? Alors placez un contourner à côté d'elle : /etc/init/foobar.override contenant (éventuellement l'en-tête avec la description et) à la place de l'élément start on / stop on vous placez une ligne avec un mot : manual . De cette façon, vous indiquez à upstart d'utiliser essentiellement le fichier foobar.conf mais modifie la définition de démarrage pour que ce service ne soit lancé que lorsqu'il est activé manuellement (par le biais de l'option service foobar start dans notre exemple).

2voto

ismail Points 19146

Ma recommandation serait de simplement commenter toutes les lignes "start on" et "stop on". Cela a bien fonctionné pour moi lorsque j'ai lancé "initctl show-config" pour voir si le démarrage automatique du programme que je voulais était désactivé.

1voto

Joseph_carp Points 417

Upstart est un piloté par les événements init manager, et les niveaux d'exécution ne sont pas le mécanisme principal pour décider quand un service démarre. Au lieu de cela, les services sont démarrés lorsque toutes leurs dépendances sont satisfaites, ce qui permet un plus grand parallélisme pendant le démarrage, accélérant ainsi le processus de démarrage.

En utilisant Ubuntu 11.04, j'ai pu désactiver GDM en éditant le fichier /etc/init/gdm.conf, et en supprimant toutes les entrées "start on". Voici mon pré-édit :

start on (filesystem
          and started dbus
          and (drm-device-added card0 PRIMARY_DEVICE_FOR_DISPLAY=1
               or stopped udev-fallback-graphics))
stop on runlevel [016]

Voici mon post-edit :

start on
stop on runlevel [016]

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X