Comment désactiver un service parvenu dans Ubuntu 10.10?


27

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

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

Cependant, cela semble une approche lourde. Comment configurez-vous correctement upstart pour pouvoir activer et désactiver ces services de manière sélective via la ligne de commande?

À titre d'exemple pratique, les réponses répertorié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?


Nb. Apparemment, certaines versions d'ubuntu ont un élément «services» dans le menu du bureau graphique qui permet de le configurer. Ce n'est pas présent sur le mien. Je recherche spécifiquement une solution en ligne de commande.
Doug

La réponse la plus récente est sur askubuntu . Lisez aussi les commentaires!
Marcello Nuccio


@Marcello Hm ... y avait-il un point à dire cela? La «réponse la plus récente» est toujours la même réponse. supprimez le fichier ou supprimez les premières lignes manuellement.
Doug

la solution la plus récente est echo manual >> /etc/init/<service>.override, et cela n'est mentionné que dans les commentaires (et dans la documentation officielle). Je ne l'ai pas trouvé facilement, c'est pourquoi je l'ai mentionné ici.
Marcello Nuccio

Réponses:


19

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, donc les supprimer de /etc/init.d supprime simplement le lien - pas le script .

Si vous voulez une interface pour cela, vous pouvez installer le chkconfigpackage ( 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'activer avec les valeurs par défaut ou

# chkconfig -s gdm 34

pour l'activer uniquement pour les niveaux d'exécution 3 et 4.

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

MISE À JOUR

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 - s'il l'est, il démarre.

Le gestionnaire / etc / X11 / default-display-manager contient simplement:

/usr/sbin/gdm

Vous pouvez le remplacer par un autre gestionnaire d'affichage ou supprimer complètement le fichier et il ne démarrera 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 dit "Si le fichier / etc / X11 / default-display-manager n'existe pas, ou s'il ne contient pas /usr/sbin/gdmalors quittez"


Ça n'a pas marché. Tout comme rcconf, chkconfig ne répertorie pas gdm en tant que service à démarrer à n'importe quel niveau d'exécution. Pourtant, en redémarrant, il se charge. chkconfig -s gdm off ne l'a pas empêché de démarrer.
Doug

2
Il y a un lien ici suggérant également que chkconfig n'est pas l'outil approprié à utiliser: ubuntuforums.org/showthread.php?t=1559266
Doug

Je n'ai jamais aimé le démarrage d'Ubuntu - et Linux en général. Il a toujours semblé si désordonné et maladroit. Donnez-moi le rcng de FreeBSD n'importe quel jour. Quoi qu'il en soit - spécifique au gestionnaire d'affichage d'Ubuntu, vous avez ce que mon montage montre ...
Majenko

+1 pour corriger après modification avec des détails pour le début.
Doug

5

J'ai toujours trouvé l' outil sysv-rc-conf très utile, il a 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

1
Je ne pense pas que cela fonctionne pour les services parvenus ..
Rajat Gupta

3

Jetez simplement un coup d'œil man 5 initet vous trouverez une solution plus appropriée. Exemple court: supposons que nous ayons un service appelé "foobar", donc il y aurait un fichier appelé /etc/init/foobar.confavec sa configuration upstart. Maintenant, vous ne voulez pas supprimer ce fichier, ni le modifier - mais vous ne voulez pas non plus que ce service s'exécute? Donc placer un override fichier à côté: /etc/init/foobar.override, contenant ( le cas échéant l' en- tête avec la description et) à la place les start on/ stop onlignes que vous placez une ligne avec un seul mot: manual. De cette façon, vous dites à upstart d'utiliser fondamentalement le foobar.conf, mais remplacez la définition de démarrage pour démarrer ce service uniquement lorsqu'il est appliqué manuellement (via service foobar startdans notre exemple).


2

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


1

Upstart est un gestionnaire d'init basé sur les événements , et les niveaux d'exécution ne sont pas le principal mécanisme pour décider du démarrage d'un service. 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 lors du démarrage, accélérant 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 mon post-édition:

start on
stop on runlevel [016]

1
Correct; cependant, ce n'est pas mieux que de simplement déplacer / supprimer le fichier etc / init / gdm.conf; Je suis (encore) étonné que l'édition manuelle du fichier de configuration semble être la seule façon de le faire.
Doug

1

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. Il a toujours semblé si désordonné> et maladroit. Donnez-moi le rcng de FreeBSD n'importe quel jour. Quoi qu'il en soit - spécifique au gestionnaire d'affichage d'Ubuntu> vous avez ce que mon édition montre ...

Arch Linux a un bon système d'initialisation. Cependant, systemd souffle tout autre système d'initialisation hors de la planète.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.