Souvent, il est nécessaire d'activer ou de désactiver temporairement ou définitivement des services sur notre système Ubuntu. Parfois, nous pouvons exiger que certains services démarrent automatiquement au démarrage, par exemple ssh ou les serveurs Web et parfois nous pouvons avoir besoin de désactiver les services dont nous n'avons plus besoin et qui monopolisent le CPU et la RAM.
Dans ce didacticiel, nous examinons comment activer et désactiver les services sur Ubuntu. Pour ce faire, nous devons d'abord comprendre qu'il existe 3 principaux systèmes d'initialisation pour Ubuntu
- Systemd
- Parfait
- SysV
Chaque système init a une manière différente de démarrer et d'arrêter les services. Nous allons jeter un œil à chacun d'entre eux.
Comment activer et désactiver les services dans Systemd init
Pour démarrer un service dans systemd exécutez la commande comme indiqué :
systemctl start service-name
Par exemple, pour démarrer le service Web apache, exécutez
systemctl start apache2
Pour vérifier que le service est en cours d'exécution, exécutez
systemctl status apache2
Sortie
● apache2.service - LSB: Apache2 web server
Loaded: loaded (/etc/init.d/apache2; bad; vendor preset: enabled)
Drop-In: /lib/systemd/system/apache2.service.d
└─apache2-systemd.conf
Active: active (running) since Thu 2018-03-15 17:09:05 UTC; 35s ago
Docs: man:systemd-sysv-generator(8)
CGroup: /system.slice/apache2.service
├─2499 /usr/sbin/apache2 -k start
├─2502 /usr/sbin/apache2 -k start
└─2503 /usr/sbin/apache2 -k start
Mar 15 17:09:04 ip-172-31-41-251 systemd[1]: Starting LSB: Apache2 web server...
Mar 15 17:09:04 ip-172-31-41-251 apache2[2475]: * Starting Apache httpd web ser
Mar 15 17:09:05 ip-172-31-41-251 apache2[2475]: *
Mar 15 17:09:05 ip-172-31-41-251 systemd[1]: Started LSB: Apache2 web server.
Pour arrêter le service service en cours d'exécution
systemctl stop apache2
Pour confirmer que le service n'est pas en cours d'exécution, exécutez
systemctl status apache2
Sortie
● apache2.service - LSB: Apache2 web server
Loaded: loaded (/etc/init.d/apache2; bad; vendor preset: enabled)
Drop-In: /lib/systemd/system/apache2.service.d
└─apache2-systemd.conf
Active: inactive (dead) since Thu 2018-03-15 17:19:47 UTC; 12s ago
Docs: man:systemd-sysv-generator(8)
Process: 2822 ExecStop=/etc/init.d/apache2 stop (code=exited, status=0/SUCCESS
Process: 2687 ExecStart=/etc/init.d/apache2 start (code=exited, status=0/SUCCE
Mar 15 17:10:11 ip-172-31-41-251 systemd[1]: Starting LSB: Apache2 web server...
Mar 15 17:10:11 ip-172-31-41-251 apache2[2687]: * Starting Apache httpd web ser
Mar 15 17:10:12 ip-172-31-41-251 apache2[2687]: *
Mar 15 17:10:12 ip-172-31-41-251 systemd[1]: Started LSB: Apache2 web server.
Mar 15 17:19:46 ip-172-31-41-251 systemd[1]: Stopping LSB: Apache2 web server...
Mar 15 17:19:46 ip-172-31-41-251 apache2[2822]: * Stopping Apache httpd web ser
Mar 15 17:19:47 ip-172-31-41-251 apache2[2822]: *
Mar 15 17:19:47 ip-172-31-41-251 systemd[1]: Stopped LSB: Apache2 web server.
Pour activer le service apache2 au démarrage
systemctl enable apache2
Pour désactiver le service apache2 au démarrage
systemctl disable apache2
Pour redémarrer le service
systemctl restart apache2
Pour vérifier si le service est actuellement configuré pour démarrer au prochain démarrage
systemctl is-enabled apache2
Sortie
Executing /lib/systemd/systemd-sysv-install is-enabled apache2
enabled
Pour vérifier si le service est actif
systemctl is-active apache2
Sortie
active
Comment supprimer complètement les services Systemd
Que se passe-t-il si vous installez un paquet et décidez plus tard que vous n'en avez plus besoin. Comment faites-vous pour l'enlever complètement ? Suivez les commandes ci-dessous.
Tout d'abord, arrêtez le service
systemctl stop service-name
Puis désactivez le service
systemctl disable service-name
Suppression du service dans systemd
rm /etc/systemd/system/service-name
rm /etc/systemd/system/service-name/[related symlinks]
Recharger systemd
systemctl daemon-reload
Courez enfin,
systemctl reset-failed
Comment activer et désactiver les services dans Upstart init
Le système d'initialisation Upstart a été dévoilé juste avant systemd Il a été utilisé dans Ubuntu 9.10 à Ubuntu 14.10. Il a ensuite été progressivement supprimé, ouvrant la voie à systemd init dans Ubuntu 15.04 et les versions plus récentes. Dans cet exemple, voyons comment nous pouvons démarrer et arrêter, activer et désactiver les services dans Ubuntu 14.04.
Upstart utilise des fichiers de configuration pour contrôler les services. Ces fichiers se trouvent dans le répertoire /etc/init. Ces fichiers sont constitués de sections de texte brut organisées en strophes et chaque strophe décrit un service et son fonctionnement.
Pour vérifier si un service est en cours d'exécution ou non exécutez la commande ci-dessous
initctl status service-name
OU
service service-name status
OU
status service-name
Dans cet exemple, nous allons vérifier l'état de cups, un serveur d'impression Linux.
initctl status cups
OU
service cups status
OU
status cups
Sortie
cups start/running, process 3029
Pour arrêter le service exécutez la commande ci-dessous
initctl stop cups
OU
service cups stop
OU
stop cups
Sortie
cups stop/waiting
Pour activer un service dans Upstart init
Dans le fichier /etc/init/*.conf, vous trouverez le "respawn " qui lance un service en cas de plantage inattendu ou de redémarrage du système. Elle est normalement activée par défaut.
Par exemple, dans le fichier /etc/init/cups.conf ci-dessous,
le premier argument (3) est le nombre de tentatives de redémarrage et le deuxième argument (12) est l'intervalle de temps entre les tentatives. S'il ne parvient pas à redémarrer automatiquement. il sera conservé dans un état arrêté.
Pour désactiver un service dans upstart init
exécutez la commande ci-dessous
echo manual >> /etc/init/service.override
Cela crée un fichier de remplacement qui désactive un service sans modifier du tout la définition de la tâche.
Pour le service des gobelets, la commande sera
echo manual >> /etc/init/cups.override
Lors d'un redémarrage du système, les gobelets seront dans un état arrêté. Si vous souhaitez réactiver le service, vous devez supprimer le fichier /etc/init/cups.override.
Outil Sysv-rc-conf
Il s'agit d'une console textuelle qui vous donne un aperçu des différents services et niveaux d'exécution qu'ils doivent démarrer. Il peut être installé à l'aide de la commande suivante
apt-get install sysv-rc-conf
Pour exécuter l'outil, exécutez
sysv-rc-conf
Outil d'administration d'emplois
Il s'agit d'une autre fonctionnalité qui vous permet de contrôler les services et les processus dans un environnement graphique. Vous pouvez l'installer en exécutant.
apt-get install jobs-admin
Comment activer et désactiver les services dans SysV init
Pour activer un service dans SysV init run
update-rc.d enable service-name
Par exemple, si vous souhaitez activer le serveur Web apache, vous devez exécuter
update-rc.d enable apache2
Pour désactiver un service , exécutez
update-rc.d disable service-name
Par exemple
update-rc.d disable apache2
Presque tous les systèmes Linux s'exécutent sur Systemd init à partir d'Ubuntu, Debian, RHEL et CentOS. Vous découvrirez donc que vous utiliserez davantage la commande systemctl pour démarrer, arrêter, activer et désactiver les services. Nous vous invitons à essayer les commandes comme indiqué dans cet article. Merci.
Lire aussi :
- Commandes Systemctl pour gérer le service Systemd sous Linux