Comment démarrer, arrêter et relancer les services sous Linux

Comment arrêter et démarrer les services sous Linux

En tant qu’administrateur système, vous êtes chargé de gérer pas mal de choses. Et cette liste s’allonge et se complique chaque jour. Pour ne rien arranger, les choses changent. Je me souviens qu’à l’époque, pour démarrer ou arrêter un service Linux, je devais ouvrir une fenêtre de terminal, entrer dans le fichier /etc/rc.d/ (ou /etc/init.d, selon la distribution que j’utilisais), localiser le service et lancer la commande /etc/rc.d/SERVICE start|stop|restart (où SERVICE est le nom du service à démarrer, arrêter ou redémarrer). Lorsque l’on travaille entre les distributions Redhat et Debian, cela avait tendance à devenir confus ; j’essayais d’émettre /etc/rc.d/service start sur une distribution, pour découvrir que cela aurait dû être /etc/init.d/service start.

Cela a changé. La façon dont un service est arrêté, démarré et redémarré est maintenant parfaitement logique. Mieux encore, elle est (pour la plupart) devenue universelle.

En quelque sorte.

La façon dont vous démarrez|arrêtez|redémarrez un service dépendra du fait que votre distribution utilise systemd ou init. Même dans ce cas, vous pourriez être en mesure de contrôler ces services par plusieurs moyens. Laissez-moi vous expliquer.

systemctl vs. service

C’est le nœud du problème. Il existe deux méthodes officiellement adoptées pour contrôler les services :

  • systemctl
  • service

Laquelle vous utilisez dépendra du fait que votre distribution fasse usage de systemd ou init. La plupart des distributions modernes ont fait le passage à systemd, donc systemctl est le gestionnaire de services de choix. Cependant, les vieilles habitudes ont la vie dure, et de nombreux administrateurs s’accrochent encore à la vieille commande service. Heureusement, les développeurs de systemd ont fait en sorte de conserver service et de le rediriger vers systemctl. Pour compliquer davantage les choses, vous pourriez trouver un service aléatoire que vous avez installé et qui n’a pas été mis à jour vers les outils service ou systemctl et devoir le démarrer manuellement à partir de avec /etc/rc.d (ou /etc/init.d).

Alors, cela peut encore être un peu confus.

Mais nous recherchons ici les meilleures pratiques ; et pour le démarrage|arrêt|redémarrage des applications sous Linux, les meilleures pratiques commencent et se terminent avec systemctl.

Utilisation de systemctl

La complication s’arrête ici. En fait, l’arrêt|le démarrage|le redémarrage des services sur Linux est maintenant assez simple. Disons que nous sommes sur CentOS et que nous voulons arrêter le serveur Apache. Pour ce faire, nous ouvririons une fenêtre de terminal et lancerions la commande :

 sudo systemctl stop httpd 

Le serveur Apache s’arrêterait et vous seriez renvoyé à l’invite bash. Pour démarrer le même service, nous émettrions la commande:

 sudo systemctl start httpd 

Le service démarrerait et vous seriez renvoyé à votre invite bash.

Pour redémarrer le même service, nous émettrions la commande:

 sudo systemctl restart httpd 

Le service redémarrerait et vous seriez renvoyé à l’invite bash.

Les commandes ci-dessus peuvent être exécutées sur CentOS, Ubuntu, Redhat, Fedora, Debian, et bien d’autres encore.

Utilisation de service

Pour rendre les choses intéressantes, la commande service fonctionne toujours — même pour les distributions qui ont migré vers systemd et systemctl. Cela signifie que ceux qui tapent instinctivement service, lorsqu’ils ont besoin de redémarrer un service sur Linux, ne recevront pas d’erreur « Commande inconnue ». Dans le cas de service, la commande sera redirigée vers systemctl. En fait, lorsque vous exécutez la commande service sur une distribution compatible avec systemctl, vous verrez clairement les informations de redirection (Figure A).

Figure A

Figure A

La commande service redirigeant vers systemctl.

L’utilisation de la commande service est un peu différente de celle de systemctl. Le nom du service et les options de démarrage|arrêt|redémarrage sont intervertis :

 sudo service httpd startsudo service httpd stopsudo service httpd restart 

Dans chaque cas, vous verrez service redirigé vers systemctl, mais le service que l’on tente de démarrer|arrêter|redémarrer y parviendra.

Ce n’est pas si compliqué

J’ai compliqué la question en mentionnant les anciennes méthodes de démarrage, d’arrêt et de redémarrage des services sous Linux. En vérité, le processus de contrôle des services dans Linux n’est pas si complexe ; vous devez seulement comprendre la bonne commande à utiliser.

Pour en savoir plus sur ce que systemctl peut vous faire pour, assurez-vous de lancer la commande man systemctl et de donner à la page de manuel une lecture.

Aussi voir

  • Comment surveiller vos serveurs Linux avec nmon (TechRepublic)
  • Comment installer Stacer pour une optimisation rapide du système Linux (TechRepublic)
  • Comment utiliser wget pour télécharger des fichiers sur votre serveur Linux sans interface graphique (TechRepublic)
  • Comment empêcher Ubuntu d’écraser /etc/resolv.conf (TechRepublic)
  • Un nouveau serveur de fichiers Samba amélioré est sorti (ZDNET)
sysctlhero.jpg
Image : Jack Wallen

.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *