Retour au blog

Comment configurer un service Linux pour qu'il démarre automatiquement après un redémarrage ou un plantage du système : Partie 1 (Exemples pratiques)

Comment configurer un service Linux pour qu'il démarre automatiquement après un redémarrage ou un plantage du système : Partie 1 (Exemples pratiques)

Introduction

En informatique, les choses ne se passent pas toujours comme prévu. Souvent, des plantages système inattendus incitent les administrateurs système à lancer des redémarrages et à relancer des services individuels. Déterminer et redémarrer chaque service dont votre application a besoin pour fonctionner après un plantage système ou un redémarrage peut être fastidieux. Dans ce premier volet de ce tutoriel en deux parties, nous allons vous montrer comment configurer des services pour qu'ils démarrent automatiquement après un plantage système ou un redémarrage du serveur à l'aide d'exemples pratiques. La deuxième partie couvrira les informations théoriques sur ce que nous avons accompli dans la première partie.

Nous utiliserons le service de base de données MySQL pour les exemples pratiques. Cependant, les mêmes principes s'appliquent aux autres processus qui composent un serveur complet tel que Nginx, Apache, Redis, ou d'autres applications. Vous pouvez consulter nos tutoriels sur comment installer MySQL, Nginx, et Apache.

Dans les distributions Linux, il existe trois principaux systèmes d'initialisation (init), selon la distribution que vous utilisez. Certaines distributions peuvent être fournies avec deux systèmes init ou plus, comme indiqué ci-dessous :

  • System V – un système init plus ancien que l'on trouve dans des distributions plus anciennes comme :
    • Ubuntu 9.04 et versions antérieures
    • CentOS 5 et versions antérieures
    • Debian 6 et versions antérieures
  • Upstart – utilisé dans d'anciennes distributions telles que :
    • CentOS 6
    • Ubuntu 9.10 à Ubuntu 14.10 et Ubuntu 14.04
  • Systemd – utilisé dans les distributions les plus récentes telles que :
    • CentOS 7
    • Debian 7 et 8.
    • Ubuntu 15.04 et versions plus récentes

Contexte

Il est courant pour les systèmes d'exploitation, et en particulier les systèmes Linux et Unix d'avoir des processus et des services qui s'exécutent en arrière-plan. Ces services peuvent avoir été fournis avec le système d'exploitation. Certains peuvent provenir des applications utilisateur que vous installez.

Les services du système d'exploitation comprennent :

  • sshd – C'est le démon qui permet les connexions à distance.
  • cupsd – C'est le démon qui contrôle l'impression.

Les services d'applications installées comprennent :

  • httpd/apache2 – Un service fourni avec le serveur web Apache2.
  • nginx – Un service fourni avec le serveur web Nginx.

Pour garantir que nos applications web, bases de données, serveurs de messagerie, etc. soient accessibles, ces services doivent fonctionner en continu. Si vous êtes un administrateur système ou un développeur d'applications curieux, vous voulez vous assurer que ces services fonctionnent en continu et, dans le cas malheureux d'un plantage du système, qu'ils démarrent automatiquement après le redémarrage du système. Et c'est exactement ce que nous allons apprendre dans ce tutoriel pratique.

Bien que la configuration d'alertes et la surveillance continue de votre distribution Linux soient cruciales, certains services Linux peuvent s'auto-guérir s'ils sont bien configurés, grâce aux systèmes init qui gèrent les services.

Dans les distributions Linux, il existe des modes de fonctionnement qui implémentent l'initialisation du système appelés niveaux d'exécution. Pour qu'un service démarre automatiquement, il doit être ajouté à un niveau d'exécution. Chaque système de type Linux et Unix possède quatre niveaux d'exécution courants, comme indiqué ci-dessous :

  • 0 – Le niveau d'exécution 0 indique l'arrêt du système.
  • 1 – Le niveau d'exécution 1 indique le mode mono-utilisateur, de secours.
  • 2, 3, 4 – Ces niveaux d'exécution indiquent des états où le système a démarré en mode multi-utilisateur, avec réseau, en mode texte.
  • 5 – Le niveau d'exécution 5 indique le mode multi-utilisateur avec réseau, en mode graphique.
  • 6 – Le niveau d'exécution 6 indique le redémarrage du système.

Dans ce tutoriel, vous apprendrez à configurer un service Linux pour qu'il démarre automatiquement au redémarrage du système à l'aide des trois différents modes init expliqués précédemment : System V, Upstart et Systemd.

Prérequis

Ce tutoriel pratique suppose que vous disposez d'un VPS Linux que vous pouvez utiliser pour suivre. Vous pouvez profiter de la période d'essai gratuite chez Cloudsigma et démarrer quelques serveurs pour essayer les commandes. Vous pouvez suivre notre tutoriel étape par étape sur la configuration de vos serveurs Ubuntu.

Les serveurs que vous créez dans ce tutoriel sont uniquement destinés à suivre les travaux pratiques et vous ne devriez pas essayer les commandes sur un serveur de production car de nombreux services seraient perturbés.

Certaines des distributions dont vous aurez besoin :

  • Ubuntu 9.04 et versions antérieures, ou Debian 6 x64 (sera utilisé pour faire la démonstration du système init System V)
  • Ubuntu 14.04 x64 (sera utilisé pour faire la démonstration d'Upstart)
  • CentOS 7 x64 (sera utilisé pour faire la démonstration de systemd).

Assurez-vous d'avoir configuré un utilisateur non-root avec des privilèges sudo. Vous pouvez jeter un œil à notre tutoriel sur la configuration du fichier sudoers ici.

Utilisation de System V

Il s'agit du plus ancien système d'initialisation qui était utilisé dans les anciennes distributions Linux telles que :

  • Debian 6 et versions antérieures
  • CentOS 5 et versions antérieures
  • Ubuntu 9.04 et versions antérieures

La plupart des applications serveur installables telles que MySQL et Nginx sont fournies avec des scripts d'initialisation enregistrés dans le répertoire /etc/init.d par défaut. Ces scripts leur permettent de démarrer après un redémarrage. Cependant, ils peuvent ne pas être configurés pour démarrer automatiquement après un plantage du système.

Liste de contrôle pour le démarrage automatique sous System V

La première étape consiste à vérifier la disponibilité d'un script d'initialisation Bash fonctionnel dans le répertoire /etc/init.d/service. Pour activer le service, dans les distributions Debian ou Ubuntu, utilisez la commande update-rc.d, dans un système CentOS, utilisez chkconfig. Remplacez par le nom réel de votre service :

La commande ci-dessus crée un lien symbolique dans le répertoire /etc/rc2.d qui ressemble à la sortie ci-dessous. Ne le créez pas vous-même car il est généré automatiquement :

Au bas du fichier /etc/inittab ajoutez une ligne respawn comme indiqué dans l'exemple générique ci-dessous. N'oubliez pas de la remplacer par le chemin d'accès réel au script de démarrage de votre application :

Saisissez les commandes suivantes pour arrêter et démarrer le service :

Ensuite, redémarrez le serveur :

Comment tester les modifications ?

Après avoir redémarré le serveur, vérifiez que le service est actif en recherchant le numéro de processus à l'aide de la commande :

Tuez le processus à l'aide de la commande :

Après cinq minutes, vérifiez que le service est opérationnel.

Configuration pratique de System V avec un service réel

Dans les étapes suivantes, nous allons essayer une application serveur réelle telle que MySQL. Vous devriez avoir accès à une machine virtuelle Debian 6. Avec un compte disposant des privilèges sudo, connectez-vous-y en utilisant SSH ou putty si vous êtes sur un bureau Windows.

Step 1: Install MySQL

Saisissez la commande suivante pour installer MySQL :

Lorsque l'installation commence, un mot de passe root vous sera demandé. Saisissez ensuite le mot de passe de votre choix et confirmez-le. Attendez que l'installation se termine, puis saisissez la commande suivante pour commencer à sécuriser MySQL :

Le mot de passe root que vous avez saisi précédemment vous sera demandé. Appuyez sur N pour le conserver. Ensuite, appuyez sur Y pour accepter les invites suivantes visant à supprimer les utilisateurs anonymes, désactiver la connexion root à distance et supprimer la base de données de test. Enfin, acceptez de recharger la table des privilèges pour que les modifications soient prises en compte automatiquement.

Ceci termine l'installation de MySQL. Vous pouvez vérifier si le service est en cours d'exécution en saisissant la commande suivante :

Étape 2 : Configurer MySQL pour qu'il démarre automatiquement après le redémarrage

MySQL est configuré par défaut pour démarrer après un redémarrage du système. Vous pouvez trouver le lien symbolique vers le script d'initialisation de MySQL dans le répertoire /etc/rc2.d. Ces liens symboliques ne sont pas créés manuellement. Vous pouvez utiliser la commande update-rc.d pour activer et désactiver des services.

Saisissez la commande suivante pour lister le contenu du répertoire :

Vérifiez si vous remarquez le lien symbolique vers le script d'initialisation de MySQL :

Le S est important, car tant que vous pouvez voir un S script sous le répertoire du niveau d'exécution par défaut pour le service, le système d'initialisation démarrera le service au démarrage du serveur. Pour vérifier que MySQL démarrera automatiquement après le redémarrage, saisissez la commande suivante pour redémarrer le système :

Votre connexion ssh se termine pendant un redémarrage. Attendez une minute ou deux et reconnectez-vous. Exécutez la commande suivante pour vérifier si le service est en cours d'exécution :

La sortie indiquera que le service est en cours d'exécution. Cela signifie qu'il a démarré automatiquement après le redémarrage. Pour les services qui ne sont pas configurés pour démarrer automatiquement, vous devrez les configurer vous-même.

We can disable the MySQL service and reboot the system to test if it auto-starts. In Debian and Ubuntu systems, you can use the update-rc.d command to add or remove services from the init system. Enter the following command to disable the MySQL service:

Redémarrerez le système et reconnectez-vous en utilisant ssh. Essayez de vous connecter à MySQL en utilisant la commande suivante :

Vous obtiendrez une erreur MySQL telle que :

Ensuite, saisissez la commande suivante pour réactiver le service :

Si vous êtes sur une distribution CentOS, la commande sera :

Puisque MySQL ne démarrait pas initialement, vous devez le démarrer. Saisissez la commande suivante :

Étape 3 : Configurer un service (MySQL) pour qu'il démarre automatiquement après un plantage du système

System V ne démarrera pas un processus automatiquement après un plantage. Nous pouvons simuler un plantage du système en trouvant l'ID de processus de MySQL et en le tuant. Saisissez la commande suivante pour trouver l'ID de processus de MySQL :

Dans la sortie, trouvez les processus MySQL. Les principaux processus exécutant MySQL sont mysqld_safe et mysqld. Notez leurs ID de processus (ce sont des chiffres) et utilisez les commandes suivantes pour les tuer :

Vérifiez le statut du service MySQL à l'aide de la commande :

La sortie indiquera que MySQL s'est arrêté. Nous pouvons le redémarrer manuellement en utilisant la commande de démarrage du service. Cependant, nous voulons un processus automatique. Pour obtenir ce comportement automatique, nous devons modifier le fichier /etc/inittab . C'est le premier fichier que System V init lit lors du démarrage. Le fichier /etc/inittab contient des instructions sur la façon dont un processus doit se comporter s'il plante. S'il est configuré correctement, il redémarre le système à nouveau en cas de plantage. Dans notre cas, nous voulons nous assurer que MySQL fait partie de ces services.

Le fichier /etc/inittab est extrêmement crucial pour une distribution Linux. Il détermine si votre système va redémarrer ou non. Si vous faites une erreur dans les commandes, le système pourrait ne pas démarrer lors du redémarrage. Comme nous l'avions indiqué, nous espérons que vous n'essayez ces commandes que dans un environnement de serveur de test et non dans un environnement de production.

Tout d'abord, faites une copie du fichier avant de commencer à le modifier :

Ensuite, ouvrez le fichier en utilisant nano :

Faites défiler jusqu'à la fin du fichier et ajoutez l'extrait de code suivant :

La commande ci-dessus redémarre le processus mysql_safe après un plantage du système. Elle comporte quatre champs séparés par des deux-points, comme expliqué ci-dessous :

  • ms : Spécifie un identifiant pour le processus.
  • 2345 : Spécifie les niveaux d'exécution auxquels la commande s'applique. Dans ce cas : niveaux d'exécution 2, 3, 4, 5.
  • respawn : Spécifie l'action. Dans ce cas, nous recréons (respawn) ou redémarrons le processus.
  • /bin/sh /usr/bin/mysqld_safe : La dernière partie définit le processus – la commande qui est exécutée pour redémarrer le processus.

Appuyez maintenant sur Ctrl + O et Entrée pour enregistrer le fichier. Ensuite, appuyez sur Ctrl + X pour fermer l'éditeur. Entrez la commande suivante pour démarrer le service :

Redémarrez le serveur, puis exécutez les commandes expliquées précédemment pour trouver le numéro de processus. Ensuite, tuez les processus, en commençant par la commande ps -ef | grep mysql. Attendez quelques minutes et entrez la commande suivante pour vérifier le statut de MySQL :

La sortie devrait indiquer que le service MySQL est opérationnel, ce qui signifie qu'il a pu redémarrer après un plantage. Vous pouvez suivre le même processus pour d'autres services sur votre serveur.

Démarrage automatique des services avec Upstart

Upstart est un autre système d'initialisation qui a été initialement introduit dans Ubuntu 6 et est devenu plus tard le système par défaut dans Ubuntu 9.10. RHEL 6 et ses dérivés, ainsi que Chrome OS de Google, utilisent également le système d'initialisation Upstart. Pour les étapes de cette section, vous devriez avoir un serveur exécutant l'une des distributions suivantes :

  • Ubuntu 9.10 à Ubuntu 14.10, et la version LTS d'Ubuntu, c'est-à-dire Ubuntu 14.04.
  • CentOS 6

Voyons comment vous pouvez configurer les fichiers Upstart pour démarrer automatiquement les services de votre serveur en cas de redémarrage ou de plantage du système. Upstart utilise des fichiers de configuration stockés sous le répertoire /etc/init pour contrôler les services dans une distribution Linux. Les versions les plus récentes des applications serveur telles que MySQL et Nginx installent leurs propres scripts d'initialisation dans le répertoire /etc/init. Ainsi, ils démarreront après un redémarrage et après un plantage du système sans que vous n'ayez rien à faire.

Liste de contrôle de démarrage automatique pour Upstart

Voici quelques configurations de référence à vérifier pour vous assurer que votre service est configuré pour démarrer automatiquement.

  • Assurez-vous que le service dispose d'un script d'initialisation dans le répertoire /etc/init/service_name.conf service_name étant le nom réel de votre service particulier. Vous devriez vérifier la présence des deux lignes suivantes dans le fichier /etc/init/service_name.conf :
    • Une ligne contenant quelque chose comme start on runlevel [2345]. Elle indique que le service sera démarré au redémarrage du système.
    • Une ligne contenant quelque chose comme respawn. Elle indique que le service sera relancé/redémarré après un plantage du système.
  • Assurez-vous qu'il n'y a pas de fichier de substitution de service dans le répertoire : /etc/init/service_name.override. À moins que vous ou un autre administrateur système ne l'ayez créé auparavant.
  • Entrez les commandes suivantes pour arrêter et démarrer le service :
  • Redémarrez le système et reconnectez-vous après quelques minutes. Maintenant, effectuez quelques tests pour voir si tout fonctionne
  • Après le redémarrage, vérifiez que le service est opérationnel. Entrez la commande suivante pour rechercher le numéro de processus, en remplaçant service_name par le nom réel du service que vous testez :
  • Une fois que vous avez le numéro de processus, entrez la commande suivante pour tuer le processus :
  • Attendez quelques secondes, puis vérifiez à nouveau que le processus est opérationnel.

Configuration pratique d'Upstart avec un service réel

Dans la section suivante, nous allons essayer de démontrer comment vous pouvez utiliser Upstart avec un service réel. Nous effectuerons les tests sur un serveur virtuel Ubuntu 14.04 avec MySQL comme service. Connectez-vous à votre serveur de test Ubuntu 14.04 en utilisant ssh ou putty si vous êtes sous Windows. Comme d'habitude, vous devriez utiliser un utilisateur non-root avec des privilèges sudo. Une fois connecté, nous pouvons commencer les étapes :

Étape 1 : Installer MySQL

N'oubliez jamais de mettre à jour vos paquets avant d'installer un nouveau logiciel :

Maintenant, entrez la commande suivante pour installer le serveur MySQL :

Créez un mot de passe root lorsque vous y êtes invité. Attendez que l'installation soit terminée et exécutez la commande suivante pour commencer à sécuriser votre installation MySQL :

Suivez les instructions, comme vous l'avez fait dans la section précédente. Ensuite, actualisez les privilèges pour que les modifications prennent effet immédiatement.

Étape 2 : Configurer un service (MySQL) pour qu'il démarre automatiquement après un redémarrage du système

MySQL est configuré pour démarrer automatiquement après un redémarrage. Nous examinons uniquement ses fichiers de configuration pour apprendre comment configurer nos applications personnalisées pour qu'elles démarrent également automatiquement après un redémarrage. Le service MySQL a été démarré automatiquement après l'installation. Cependant, confirmons qu'il est en cours d'exécution en saisissant la commande suivante :

Vous devriez voir un résultat indiquant que le service MySQL est en cours d'exécution, quelque chose comme :

Redémarrez votre serveur et reconnectez-vous. Saisissez à nouveau la commande suivante pour vérifier qu'il est en cours d'exécution :

Le résultat indiquera que MySQL est en cours d'exécution, ce qui signifie qu'il a été démarré automatiquement après le redémarrage. Dans ce cas, rien n'a besoin d'être modifié. Cependant, ce comportement peut ne pas être le même pour d'autres applications. Vous vous demandez peut-être comment le système d'initialisation Upstart sait qu'il doit démarrer automatiquement MySQL après le redémarrage. MySQL installe son fichier de configuration de démarrage Upstart à l'emplacement /etc/init/mysql.conf. Les fichiers Upstart ne sont pas des scripts shell, mais des fichiers texte contenant des blocs de script pour les événements de pré-démarrage (pre-start) et de post-démarrage (post-start). Les blocs indiquent au système Upstart ce qu'il doit exécuter lorsque le processus MySQLd démarre ou lorsqu'il a déjà démarré.

Saisissez la commande suivante pour ouvrir le fichier dans l'éditeur avec nano :

Le contenu du fichier peut ressembler à ceci :

Comme on peut le voir, le bloc start indique à MySQL de démarrer sur les runlevels 2, 3, 4, 5, et non 0, 1, 6. Si vous définissez une configuration Upstart pour votre application, vous la définirez dans cette section. Le bloc respawn indique à Upstart ce qu'il doit faire après un plantage. Nous en discuterons dans la section suivante, alors gardez le fichier ouvert dans l'éditeur nano.

Étape 3 : Configurer un service (MySQL) pour qu'il démarre automatiquement après un plantage

La directive respawn dans le fichier /etc/init/mysql.conf indique à Upstart de redémarrer le service MySQL après un plantage.

La directive respawn limit indique à Upstart combien de fois il doit tenter de redémarrer le service MySQL planté dans un intervalle spécifié en secondes. Le premier argument, (2), indique le nombre de tentatives. Le deuxième argument, (5), indique l'intervalle en secondes. Si, après un plantage, Upstart ne parvient pas à relancer (respawn) le service MySQL dans la limite définie, celui-ci restera arrêté. Ce comportement est conçu pour protéger la stabilité du système dans le cas où il essaierait continuellement de redémarrer des services qui plantent en boucle. Vous pouvez maintenant fermer l'éditeur sans apporter de modifications.

Testons si MySQL redémarre automatiquement après un plantage. Saisissez la commande suivante pour vérifier le statut et obtenir le numéro de processus du service MySQL :

Le résultat devrait ressembler à ceci. Notez le numéro de processus car nous l'utiliserons plus tard :

Ensuite, saisissez la commande suivante pour tuer le processus. Cela simule un plantage. Remplacez par le numéro de processus que vous avez obtenu dans la commande précédente :

Vérifiez à nouveau le statut de MySQL en saisissant la commande suivante :

Il devrait être à nouveau en cours d'exécution, mais probablement avec un numéro de processus différent :

Cela se produit en raison de la directive respawn dans le /etc/init/mysql.conf fichier. Il garantit qu'en cas de panne du système, MySQL démarrera automatiquement. Par conséquent, votre application qui dépend d'une base de données MySQL continuera à fonctionner comme prévu.

Démarrage automatique des services avec Systemd

Systemd est un système d'initialisation présent dans la plupart des distributions Linux récentes. C'est probablement ce que vous utiliserez lorsque vous déploierez un nouveau VPS. Il a été introduit pour la première fois dans Fedora. Il est fourni avec RHEL 7 et ses dérivés comme CentOS 7. À partir d'Ubuntu 15.04, vous trouverez Systemd nativement. Systemd est rétrocompatible avec les scripts et commandes d'initialisation de System V. Par conséquent, tout service System V devrait fonctionner sous Systemd. La plupart des commandes utilisées dans System V et Upstart ont été modifiées pour fonctionner avec Systemd.

Avec Systemd, la plupart des applications serveur telles que MySQL et Nginx démarreront automatiquement après un redémarrage ou un arrêt, sans que vous ayez à modifier quoi que ce soit. Pour vos applications personnalisées, vous devez créer vos propres scripts d'initialisation pour redémarrer automatiquement les services.

Pour des informations plus détaillées sur Systemd, consultez notre tutoriel sur la gestion des services et des unités Systemd avec Systemctl.

Liste de contrôle du démarrage automatique pour Systemd

Voici quelques configurations de référence à vérifier pour vous assurer que votre service est configuré pour démarrer automatiquement avec Systemd.

  • Le service doit avoir un script d'initialisation Systemd fonctionnel situé à /etc/systemd/system/multi-user.target.wants/serviceName.service. ServiceName est le nom réel du service que vous configurez.
  • La commande pour activer le service est :
  • La commande crée un lien symbolique dans le répertoire /etc/systemd/system/multi-user.target.wants/ qui peut ressembler à :
  • Une fois ce lien symbolique en place, vous aurez activé le redémarrage automatique après le démarrage.
  • Pour activer les modifications, rechargez le démon système puis rechargez le service à l'aide des commandes suivantes :
  • Pour tester si vos configurations démarreront le service après un redémarrage, vous pouvez redémarrer le système :
  • Lorsque le système redémarre, recherchez le numéro de processus à l'aide de la commande :
  • Notez le numéro de processus et tuez-le à l'aide de la commande :
  • Attendez quelques secondes et recherchez à nouveau le service pour vérifier qu'il est de nouveau opérationnel.

Configuration pratique de Systemd avec un service réel

Dans cette section, nous allons essayer de configurer le service MySQL sur une machine virtuelle Ubuntu 20.04.

Étape 1 : Connectez-vous à votre serveur privé virtuel (Ubuntu 20.04 ou CentOS 7 x64)

Connectez-vous à votre VPS ou créez-en un depuis le panneau Cloudsigma et connectez-vous en utilisant ssh ou putty si vous êtes sous Windows. Nous utilisons le serveur Ubuntu 20.04 pour cette section du tutoriel. Les mêmes commandes peuvent s'appliquer à CentOS 7. Veillez à utiliser un utilisateur non-root avec des privilèges sudo.

Étape 2 : Installez MySQL (le service que nous configurons)

Tout d'abord, mettez à jour votre système :

Ensuite, vous pouvez installer le serveur MySQL à l'aide de la commande :

Ensuite, exécutez la commande suivante pour commencer à sécuriser MySQL :

Le script vous demande si vous souhaitez configurer le composant VALIDATE PASSWORD ou appuyer sur n'importe quelle touche pour continuer sans activer le composant. Suivez ce lien pour en savoir plus sur le composant de validation de mot de passe MySQL.

Appuyez sur 1 pour l'activer, puis choisissez le niveau moyen en appuyant sur 1. Saisissez un mot de passe fort : une combinaison de majuscules, de minuscules, de caractères spéciaux et de chiffres. Confirmez le mot de passe et confirmez l'invite qui vous demande si vous souhaitez utiliser le mot de passe saisi comme mot de passe root. Pour le reste des autres invites, appuyez sur y pour les accepter comme vous l'avez fait dans les sections précédentes. Enfin, videz les privilèges pour que MySQL recharge les modifications.

Étape 3 : Configurer MySQL pour qu'il démarre automatiquement après un redémarrage

MySQL est configuré pour démarrer après un redémarrage, il n'y a donc aucune modification à apporter. Cependant, nous pouvons utiliser les fichiers de configuration de MySQL pour apprendre à configurer nos fichiers personnalisés.

Tout d'abord, vérifiez si le service MySQL a été configuré pour démarrer au démarrage du système. Saisissez la commande suivante (notez que sous CentOS, le service MySQL s'appelle mysqld) :

Voici le résultat :

CS screenshot

Ensuite, redémarrez le VPS en saisissant la commande suivante :

Reconnectez-vous en utilisant SSH et saisissez la commande suivante pour vérifier l'état du service MySQL :

Vous devriez obtenir un résultat similaire à celui de la capture d'écran ci-dessous :

System Crash 3

Pour désactiver le service MySQL, saisissez la commande suivante :

Le résultat indique que les liens symboliques vers le service MySQL ont été supprimés de Systemd :

screenshot it 4

Vous pouvez tester si le service est activé avec le système d'initialisation Systemd en saisissant la commande suivante :

Le résultat indiquera qu'il est désactivé. Si vous redémarrez votre système, MySQL ne démarrera pas au démarrage :

disabled screenshot

Activez le service en saisissant la commande suivante :

Le résultat montre le lien symbolique vers le service MySQL créé dans l'initialisation Systemd :

screenshot 5

Lorsque vous redémarrerez, le service MySQL démarrera automatiquement.

Étape 4 : Configurer MySQL pour qu'il démarre automatiquement après un plantage

MySQL est configuré pour redémarrer automatiquement après un plantage. Voyons comment cette configuration est implémentée dans Systemd. Systemd utilise des fichiers d'unité pour la configuration. Saisissez la commande suivante pour ouvrir le fichier de configuration mysql.service dans nano :

Le résultat ressemble à ceci :

System Crash 2

Ce qui nous intéresse est la directive Restart. Comme défini, MySQL redémarrera en cas de défaillance. La directive Restart définit ce qui doit se passer dans Systemd, tout comme la directive Respawn dans Upstart.

Tous les services n'ont pas cette directive. Pour permettre à un service de redémarrer après un plantage, vous pouvez toujours ajouter la directive Restart sous le bloc [Service] du fichier d'unité de configuration du service. Si l'en-tête [Service] n'existe pas, ajoutez-le. Maintenant, quittez l'éditeur en appuyant sur Ctrl + X.

Pour simuler un plantage, recherchez l'identifiant du processus de MySQL en saisissant la commande suivante :

La commande de vérification de l'état affiche un identifiant de processus, dans notre cas il s'agit de 3555 :

System Crash 1

Saisissez la commande suivante pour tuer le processus. Remplacez-le par l'identifiant de processus que vous avez obtenu sur votre serveur :

Saisissez la commande suivante pour vérifier l'état :

Le résultat montre que MySQL est en cours d'exécution, mais avec un nouvel identifiant de processus. Cela signifie qu'il a redémarré automatiquement après le plantage :

screenshot 8

Conclusion

Dans ce tutoriel, nous vous avons présenté les trois systèmes d'initialisation des distributions Linux : System V, Upstart et Systemd. Nous avons appris à utiliser l'un de ces systèmes d'initialisation pour configurer vos services en cours d'exécution continue afin qu'ils démarrent automatiquement après un redémarrage ou un plantage du système. Cela devrait vous servir de point de départ lorsque vous devez configurer vos services. La première partie de cette série était principalement un tutoriel pratique. Le la deuxième partie est plus théorique et présente plus de détails sur ce que nous avons fait dans la première partie. Ne supprimez pas encore vos serveurs de test car vous les utiliserez également dans la deuxième partie.

Bonne informatique !

 

author

Manpreet Singh

Auteur · CloudSigma

Preslav Dobrev est un designer créatif chez CloudSigma, axé sur une identité commerciale cohérente à travers des canaux marketing traditionnels et innovants. Il excelle à fusionner la vision artistique avec le marketing stratégique pour créer des récits de marque percutants.

Commentaires

Aucun commentaire pour l'instant. Soyez le premier.