web-dev-qa-db-fra.com

Comment désactiver un service de démarrage dans Ubuntu 10.10?

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

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

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

Comme exemple pratique, les réponses listées ici pour désactiver gdm à l'aide de rcconf ne fonctionnent plus: Comment puis-je empêcher GDM de s'exécuter au démarrage sous Ubuntu?

27
Doug

Si vous regardez dans /etc/init.d, vous remarquerez que tous les services configurés via upstart ne sont que des liens symboliques vers/lib/init/upstart. Ainsi, les supprimer de /etc/init.d supprime simplement le lien - pas le script. .

Si vous voulez une interface pour cela, vous pouvez installer le paquetage chkconfig (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 l'éteindre complètement,

# chkconfig -s gdm on

pour l'allumer avec les valeurs par défaut ou

# chkconfig -s gdm 34

de ne l'activer que pour les niveaux d'exécution 3 et 4.

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

UPDATE

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

Lorsque gdm démarre, il appelle un fichier de configuration par défaut, /etc/init/gdm.conf.

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

Le fichier/etc/X11/default-display-manager contient uniquement:

/usr/sbin/gdm

Vous pouvez remplacer ceci par un autre gestionnaire d'affichage ou supprimer complètement le fichier sans que gdm ne démarre.

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 dit "Si le fichier/etc/X11/default-display-manager n'existe pas ou s'il ne contient pas /usr/sbin/gdm, fermez-le"

19
Majenko

J'ai toujours trouvé l'outil sysv-rc-conf très utile, il possède une interface 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
5
n0mad

Il suffit de regarder man 5 init et vous trouverez une solution plus appropriée. Petit exemple: supposons que nous ayons un service appelé "foobar", il y aurait donc un fichier appelé /etc/init/foobar.conf avec sa configuration upstart. Maintenant, vous ne voulez pas supprimer ce fichier, ni le modifier - mais vous ne voulez pas non plus que ce service soit exécuté? Placez donc à côté un fichier de substitution : /etc/init/foobar.override, contenant (éventuellement l'en-tête avec la description et) les lignes start on/stop on avec lesquelles vous placez une ligne un mot: manual. De cette façon, vous indiquez à upstart d'utiliser fondamentalement le foobar.conf, mais vous substituez la définition de démarrage pour ne démarrer ce service que s'il est appliqué manuellement (via service foobar start dans notre exemple).

3
Izzy

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

2
user35060

Voici une solution:

http://ubuntuforums.org/showpost.php?p=9416839&postcount=3

@ Matt Jenkins

Je n'ai jamais aimé le démarrage d'Ubuntu - et Linux en général. Cela a toujours semblé si brouillon> et kludgy. Donnez-moi le code de FreeBSD tous les jours. Quoi qu'il en soit - spécifique au gestionnaire d'affichage d'Ubuntu> vous avez ce que mon montage montre ...

Arch Linux a un système Nice init. Cependant, systemd chasse tout autre système d’init de la planète.

1
Pawlo

Upstart est un gestionnaire d'initialisation piloté par événement, et les niveaux d'exécution ne constituent pas le mécanisme principal permettant de décider du moment où 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 au démarrage, ce qui accélère le processus de démarrage.

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

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 ma post-édition:

start on
stop on runlevel [016]
1
Jason Martens