Comment empêcher les services Linux de démarrer automatiquement?

11

J'ai récemment migré de Windows vers Linux (xubuntu)

Je suis développeur et j'ai installé tout ce dont j'ai besoin, LAMP. Sous Windows, j'avais l'habitude de désactiver tous les services inutiles - je n'ai pas besoin que le service Apache ou MySQL fonctionne tout le temps. Chaque fois que j'avais besoin de MySQL, j'utilisais:

net start mysql

Comment faire la même chose sous Linux?

  1. Désactiver les démons inutiles du démarrage automatique?
  2. Les lancer uniquement quand j'en ai besoin?
Aviv
la source
3
Je pense que vous devriez inclure la version exacte d'ubuntu que vous utilisez. Les nouvelles versions d'ubuntu utilisent upstart, qui a ses propres problèmes.
vtest
Edit: j'utilise Xubuntu dernière version 10.04, mais je ne veux pas utiliser et GUI pour cela, uniquement à partir du terminal. On dirait que @prhq a quelque chose dans sa réponse. Qu'est-ce qui est parvenu?
Aviv du
Appartient ailleurs, soit sur Server Fault ou Unix. Toujours utile cependant.
ripper234

Réponses:

10

Dans la plupart des distributions Linux, vous pouvez démarrer / arrêter manuellement les services en (en tant que root ou en utilisant sudo) en exécutant les commandes suivantes:

# /etc/init.d/apache2 start
# /etc/init.d/mysqld start

# /etc/init.d/apache2 stop
# /etc/init.d/mysqld stop

Les services qui sont démarrés automatiquement sont contrôlés par les liens de fichiers dans /etc/rc[runlevel[d.d/. Trouvez votre niveau d'exécution actuel en utilisant la commande "runlevel" en tant que root

# runlevel
N 2

Ce qui indique ici le niveau d'exécution 2 Il ne vous reste plus qu'à supprimer ces fichiers dans /etc/rc2.d/ que vous ne souhaitez pas démarrer.

La suppression d'apache et de Mysql sur un bureau est généralement correcte, mais n'oubliez pas de supprimer d'autres services.

hultqvist
la source
3
C'est assez trompeur, même si vous avez dit "la plupart des distributions". Je qualifierais votre recette de spécifique à la distribution.
vtest
À quoi pensiez-vous? Je ne peux penser qu'à ArchLinux (mais ces utilisateurs devraient déjà savoir ce qu'ils font). Bien sûr, certaines distributions ont des outils spécifiques, mais la technique ci-dessus fonctionne également.
hultqvist
Assez étrange, je peux voir un fichier appelé S91apache2 dans le répertoire /etc/rc2.d, je suppose que cela démarre l'apache2 ... mais je ne trouve aucun fichier concernant MySQL. Où puis-je en savoir plus sur ces démons à démarrage automatique?
Aviv
Ensuite, le serveur mysql peut ne pas être configuré pour un démarrage automatique. Ce site semble avoir une bonne explication: yolinux.com/TUTORIALS/LinuxTutorialInitProcess.html
hultqvist
Notez que sous * BSD et l'arborescence Slackware, le répertoire est /etc/rc.d/.
new123456
13

Pour les versions d'Ubuntu qui utilisent systemd (15.04 et versions ultérieures), utilisez:

systemctl disable service

Cela fera l'affaire. Il désactivera le service et ne redémarrera pas après un redémarrage. Pour l'activer temporairement, démarrez simplement le service. Non activé .

Pour trouver le nom du service, utilisez

service --status-all

Les autres commandes sont:

systemctl start service- Utilisez-le pour démarrer un service. Ne persiste pas après le redémarrage

systemctl stop service- Utilisez-le pour arrêter un service. Ne persiste pas après le redémarrage

systemctl restart service - Utilisez-le pour redémarrer un service

systemctl status service- Affiche l'état d'un service. Indique si un service est en cours d'exécution.

systemctl enable service- Active le service, au prochain redémarrage ou au prochain événement de démarrage. Il persiste après le redémarrage.

systemctl disable service- Désactive le service au prochain redémarrage ou au prochain événement d'arrêt. Il persiste après le redémarrage.

Nandesh
la source
2
Dommage que ce ne soit pas la réponse acceptée :). Merci, j'ai totalement oublié cette commande.
Nordes
8

Ubuntu 10.04 est au milieu d'une transition entre deux systèmes de gestion de services: SysVinit (le système traditionnel, utilisé par la plupart des distributions Linux) et Upstart (un système plus récent poussé par Ubuntu et devenant disponible dans de plus en plus de distributions).

Les scripts de gestion des services SysVinit sont disponibles /etc/init.d. Vous pouvez démarrer le service avec /etc/init.d/SERVICENAME startet l'arrêter avec /etc/init.d/SERVICENAME stop. Le démarrage automatique du service au démarrage dépend de la présence de liens symboliques dans /etc/rc?.doù se ?trouve un chiffre de 2à 5(le niveau d'exécution ). La manière la plus simple d'empêcher un service de démarrer automatiquement au démarrage est d'utiliser update-rc.d SERVICENAME disable.

Les fichiers de configuration de gestion des services par défaut sont dans /etc/init. Vous pouvez démarrer le service avec start SERVICENAMEet l'arrêter avec stop SERVICENAME. Le fichier de configuration /etc/init/SERVICENAME.confcontient une ligne indiquant le moment de commencer le service: start on …. Un moyen simple de désactiver ces services consiste à modifier cette ligne en start on never and (…). Si vous ne souhaitez pas modifier le fichier, vous pouvez également désactiver complètement le service sans confondre le système de conditionnement en le renommant pour qu'il ne se termine pas .conf.

dpkg-divert --add --local --divert /etc/init/foo.conf.disabled --rename /etc/init/foo.conf

Depuis Ubuntu 10.04, Apache est livré avec un script SysVinit et Mysql est livré avec un script Upstart.

Gilles 'SO- arrête d'être méchant'
la source
La modification de servicename.conf est-elle vraiment la méthode préférée? Surtout quand les mises à jour peuvent théoriquement mettre à jour ces fichiers de configuration et remplacer vos modifications
Masse
@Masse: Ce n'est pas toujours la voie préférée, mais elle a l'avantage de toujours fonctionner. Certains services lisent un fichier /etc/defaultet y ont une START_FOOoption que vous pouvez désactiver, mais beaucoup s'attendent à s'exécuter s'ils sont installés. Les mises à jour n'écraseront pas vos modifications sans y être invité car ce sont tous des conffiles.
Gilles 'SO- arrête d'être méchant'
Sensationnel. Cela semble être un grand pas en arrière.
Masse
@Masse: Les fichiers de configuration sont destinés à être modifiés par l'administrateur. Mais si vous ne voulez pas le faire, vous pouvez également utiliser dpkg-divertpour renommer le fichier de service. Cependant, si vous le faites, vous ne pourrez pas démarrer le service explicitement.
Gilles 'SO- arrête d'être méchant'