Redémarrez un service à l'aide de la commande systemctl restart

Redemarrez Un Service A L Aide De La Commande Systemctl Restart



Le système est un gestionnaire de services système largement utilisé sous Linux. Pour gérer système services, les systèmectl L'utilitaire de ligne de commande est utilisé. Cet outil est également utilisé pour redémarrer n'importe quel service systemd.

Les services sous Linux sont gérés via leur fichier de configuration. Si des modifications sont apportées au fichier de configuration d’un service, il est nécessaire de lancer un redémarrage du service pour appliquer les modifications. Au redémarrage du service, systemd réévalue le fichier de configuration et applique les modifications.

Dans ce guide, je vais expliquer comment utiliser systemctl pour redémarrer un service sous Linux.







Note: Ce guide comprend des commandes et des instructions exécutées sur Ubuntu 22.04. La commande fonctionnera sans aucun problème sur les distributions fournies avec le gestionnaire de services systemd.



La commande systemctl restart

Le redémarrage La commande arrête essentiellement un service et le redémarre. Si le service ou l'unité n'est pas opérationnel, la commande de redémarrage lancera son fonctionnement.



La commande de redémarrage ne supprime pas les processus liés au service. Prenons l'exemple des descripteurs de fichiers, qui sont des identifiants non négatifs attribués par le système d'exploitation aux fichiers ouverts par un service. Si vous redémarrez un service, le descripteur de fichier lié à ce service y restera pendant le processus de redémarrage.





Si vous souhaitez supprimer tous les processus liés au service, vous devez alors explicitement arrêt le service et commencer encore une fois.

Comment redémarrer un service

Sous Linux, vous pouvez redémarrer un service en utilisant le sudo systèmectl outil de ligne de commande avec le redémarrage option et en précisant son nom. La syntaxe générale est donnée ci-dessous :



sudo redémarrage de systemctl [ Nom du service ]

Tu auras besoin de sudo privilèges pour redémarrer un service.

Par exemple, redémarrons le chut service.

sudo systemctl redémarre ssh.service

Pour redémarrer plusieurs services, ajoutez chaque nom de service après le redémarrage commande avec un espace.

sudo systemctl redémarre ssh.service smbd.service

D'autres commandes de redémarrage sont données dans le tableau ci-dessous :

essayer de redémarrer Il arrête ou démarre le ou les services spécifiés et si le service n'est pas en cours d'exécution, il ne le démarre pas
recharger ou redémarrer Rechargez le ou les services pris en charge et si le service n'est pas pris en charge, redémarrez-le et activez-le
essayez-recharger-ou-essayer-redémarrer Rechargez le ou les services pris en charge et si le service n'est pas pris en charge, redémarrez-le sans l'activer

Dans les commandes ci-dessus, le .service la prolongation est facultative.

Comment redémarrer automatiquement un service

Sous Linux, si un service échoue, alors le système je l'ai redémarré par défaut. Néanmoins, dans de nombreux cas, il peut être nécessaire de modifier la manière dont un service redémarre. Par exemple, une action manuelle peut être nécessaire pendant le processus de débogage du service personnalisé.

Les fichiers d'unité systemd ou les fichiers de service se trouvent sur /etc/systemd/système ou /lib/systemd/système principalement en fonction de la manière dont le service est créé. Pour lister les fichiers unité sous Linux, utilisez la commande suivante :

ls / lib / système / système

Vous pouvez voir les fichiers de configuration de différents services. Ouvrons le ssh.service fichier en utilisant le nano éditeur.

sudo nano / lib / système / système / ssh.service

Ici, vous pouvez modifier le Redémarrage paramètre. Par défaut, il est défini sur en panne . D'autres options pour redémarrer un service sont répertoriées ci-dessous :

  • Non
  • toujours
  • en réussite
  • en panne
  • allumé-anormal
  • à l'abandon
  • chien de garde

Une autre option dans le fichier de service de l'unité est RedémarrerSec qui permet de spécifier le nombre de secondes après lequel le service redémarrera.

[ Service ]

Redémarrage =toujours

RedémarrerSec = 5

Ces instructions signifient que le service redémarrera au démarrage et, en cas d'interruption, sera redémarré après 5 secondes.

Après avoir modifié le paramètre, exécutez la commande suivante pour appliquer les modifications.

sudo démon de rechargement systemctl

D'autres paramètres importants à prendre en compte sont StartLimitIntervalSec et DébutLimiteBurst . Ces options sont utiles pour définir la durée maximale et le nombre maximal de tentatives de redémarrage d'un service.

[ Unité ]

StartLimitIntervalSec = 300

DébutLimiteBurst = 4

L'instruction ci-dessus indique que systemd cessera automatiquement d'essayer de redémarrer un service s'il ne démarre pas après 300 secondes et 4 tentatives.

Pour vérifier si le service redémarre après 5 secondes ou non, tuez le service en utilisant le PID du service et le tuer commande.

sudo tuer -9 [ PID ]

Après 5 secondes, le service sera redémarré ; Utilisez le journalctl commande pour vérifier l'état du ssh.service .

journalctl -dans ssh.service

Comment redémarrer un service lors du redémarrage du service dépendant

Sous Linux, de nombreux services sont interdépendants et, de la même manière, ils doivent être redémarrés lorsqu'un service dépendant est redémarré.

Il existe trois options différentes dans le fichier de service unitaire pour redémarrer un service, avec un service dépendant redémarré.

  • Partie de
  • Lier à
  • A besoin

Toutes ces options effectuent la même tâche.

Prenons un exemple de ssh.service qui dépend de apparmor.service ; un module de sécurité Linux pour fournir l'accès nécessaire. Pour lister les dépendances d'un service sous Linux, utilisez systèmectl avec liste-dépendances nom de la commande et du service.

systemctl liste-dépendances ssh.service

Ainsi, si vous souhaitez redémarrer ssh.service lorsque vous redémarrez apparmor.service, vous devez inclure l'option PartOf, BindsTo ou Requires ainsi que le nom du service dans la section [Unit] du fichier apparmor.service.

Ouvrez le fichier apparmor.service.

sudo nano / lib / système / système / apparmor.service

Ajoutez la ligne suivante dans la section [Unité].

Partie de =ssh.service

Enregistrez le fichier et exécutez la commande daemon-reload.

sudo rechargement du démon systemctl

Maintenant, redémarrez le ssh.service puis vérifiez le apparmor.service enregistrer.

Vous remarquerez le apparmor.service redémarré en même temps le ssh.service redémarré.

Conclusion

Pour redémarrer un ou plusieurs services sous Linux, le systèmectl la commande est utilisée avec le redémarrage option. Le systèmectl est un utilitaire de ligne de commande utilisé pour gérer les services systemd. Le redémarrage L'option démarre un service puis l'arrête, activant un service inactif. Cependant, vous pouvez redémarrer un service sans l'activer en utilisant le essayer de redémarrer option.