Les services système jouent un rôle crucial dans le fonctionnement d'un système Linux, gérant diverses tâches et processus en arrière-plan.systemctl>est un puissant outil de ligne de commande qui permet aux utilisateurs de gérer efficacement ces services. Dans cet article, nous explorerons les bases de l'utilisationsystemctl>pour démarrer, arrêter, redémarrer, activer, désactiver et afficher l'état des services dans un environnement Linux.
Qu’est-ce que systemctl ?
Avant de se lancer dans la gestion des services, il est essentiel d’en comprendre les basessystemctl>. Cette commande est utilisée pour contrôler le système systemd et le gestionnaire de services, qui est un composant central des distributions Linux modernes.
systemctl [command] [unit]>
Ici,
-
command>: Action à effectuer (par exemple, démarrer, arrêter, redémarrer, activer, désactiver). -
unit>: Le service ou l’unité à affecter.
Systemctl est un contrôleur ou utilité de Systemd (un système d'initialisation avec un ensemble de programmes exécutés en arrière-plan), avec auxiliaire dans les services de gestion, ces commandes sont exécutées en mode root si vous n'êtes pas en mode rooter le système, en demandant le mot de passe de root.
Qu'est-ce qu'une prestation ?
Un service informatique est un processus d’arrière-plan qui exécute des tâches et des fonctions spécifiques sans intervention de l’utilisateur. Les services démarrent souvent automatiquement lors du démarrage du système et s'exécutent en continu pour fournir des fonctionnalités telles que le service Web, le partage de fichiers ou la surveillance du système. Ils sont gérés par le système d'exploitation et peuvent être démarrés, arrêtés ou redémarrés selon les besoins. Les services contribuent à garantir que les opérations essentielles sont toujours disponibles. Les exemples incluent des serveurs Web comme Apaches, des serveurs de bases de données comme MySQL, et services de journalisation du système.
Qu'est-ce qu'un démon ?
Un démon est un processus en arrière-plan qui s'exécute en continu sur un système Linux ou Unix. Il effectue des tâches sans interaction directe de l'utilisateur, démarrant souvent automatiquement au démarrage. Les exemples courants incluent les serveurs Web, les serveurs de bases de données et les outils de surveillance du système. Les démons ont généralement des noms se terminant par d, commehttpd>ousshd>. Ils aident à gérer efficacement les fonctions et les services du système.
Quel est le système d'initialisation ?
Le système d'initialisation est le premier processus qui s'exécute au démarrage d'un système Linux et est responsable de l'initialisation du système. Il gère les services et processus système, en gérant leur démarrage, leur arrêt et leur redémarrage. Les systèmes d'initialisation courants incluent SysVinit, Upstart et systemd. Le système init garantit que tous les services nécessaires fonctionnent correctement et gère les dépendances entre eux. Il continue de s’exécuter en arrière-plan pour surveiller et gérer les processus système tout au long du fonctionnement du système.
Unités dans systemd
Dans systemd, les unités sont les objets de base que systemd gère et contrôle. Ils représentent des ressources système telles que des services, des minuteries, des appareils et des points de montage. Chaque unité est définie par un fichier de configuration avec un suffixe spécifique, comme.service>pour des services ou.timer>pour les minuteries. Les unités peuvent être démarrées, arrêtées, activées ou désactivées à l'aide des commandes systemctl. Ils sont essentiels pour définir la manière dont le système démarre et gère divers processus et ressources.
.unités de service dans systemd
Systèmed.service>les unités sont des fichiers de configuration utilisés pour gérer les services sur les systèmes Linux. Ils définissent comment et quand les services doivent être démarrés, arrêtés et redémarrés. Chaque.service>Le fichier contient des détails tels que le nom du service, la description et la commande à exécuter. Ces fichiers se trouvent généralement dans/etc/systemd/system>ou/lib/systemd/system>. Leur gestion implique des commandes commesystemctl start>,systemctl stop>, etsystemctl enable>.
Comment trouver toutes les unités systemd du système ?
Pour répertorier les unités système disponibles ou pour répertorier tous les services sous Linux, nous utilisons la commande suivante :
systemctl list-unit-files --type service -all>
Comment démarrer un service système sous Linux
Syntaxe:
constructeur de chaînes
sudo systemctl start service.service>
La commande start sert à démarrer (activer) une ou plusieurs unités spécifiées sur la ligne de commande.
Exemple:
sudo systemctl start mariadb>

Commande Démarrer
Comment arrêter un service système sous Linux
Syntaxe:
sudo systemctl stop service.service>
La commande stop sert à arrêter le service ou (désactiver) une ou plusieurs unités spécifiées sur la ligne de commande.
Exemple:
sudo systemctl stop mariadb>

Commande d'arrêt et d'état
Comment afficher l'état d'un service système sous Linux
Syntaxe:
sudo systemctl status service.service>
La commande status sert à vérifier l'état du service. Affichez des informations concises sur l'état d'exécution d'une ou plusieurs unités, suivies des données de journal les plus récentes du journal. Si aucune unité n’est spécifiée, affiche l’état du système.
Exemple:
sudo systemctl status mariadb>

Statut de la commande
Comment redémarrer un service système sous Linux
Syntaxe:
sudo systemctl restart service.service>
La commande restart sert à redémarrer le service en exécution. Arrêtez puis démarrez une ou plusieurs unités spécifiées sur la ligne de commande. Si les unités ne fonctionnent pas encore, elles seront démarrées.
Exemple:
sudo systemctl restart mariadb>

Redémarrage de la commande
Comment activer un service système sous Linux
Syntaxe:
sudo systemctl enable name_service.service>
La commande enable sert à exécuter le service depuis l'initialisation s'il est constitué d'une ou plusieurs unités ou instances d'unités. Cela créera un ensemble de liens symboliques , tel qu'encodé dans les sections [Install] des fichiers d'unité indiqués. la configuration du gestionnaire système est rechargée (de manière équivalente au daemon-reload), afin de garantir une prise en compte immédiate des modifications.
Exemple
sudo systemctl enable mariadb>

Commande Activer

Statut de la commande
clé d'entrée
Comment désactiver un service système sous Linux
Syntaxe:
sudo systemctl disable name_service.service>
La commande Disable sert à retirer le service depuis l'initialisation d'une ou plusieurs unités. Cela supprime tous les liens symboliques vers les fichiers d'unité soutenant les unités spécifiées du répertoire de configuration de l'unité et annule donc toutes les modifications apportées par l'activation ou le lien.
Exemple:
sudo systemctl disable mariadb>

Commande Désactiver

Statut de la commande
Arrêtez ou redémarrez le système à l'aide de systemctl
Redémarrez le système : Il instruitsystemd>pour redémarrer tout le système. Tous les services sont arrêtés et le système subit un processus d'arrêt complet avant de redémarrer.
sudo systemctl reboot>
Arrêtez le système : Il indique à Systemd d'éteindre la machine. Tous les services et processus sont arrêtés et le système est mis hors tension en toute sécurité.
sudo systemctl shutdown>
journalctl
journalctl>est une commande utilisée dans les systèmes Linux pour interroger et afficher les journaux dusystemd>journal, qui est un service système qui collecte et stocke les données de journalisation. Voici un guide simple sur la façon d’utiliserjournalctl>:
journalctl -n 10>est utilisé pour afficher les 10 dernières entrées (lignes) du journal systemd. Voici un aperçu de ce que fait chaque partie de la commande :
-
journalctl>: Invoque lejournalctl>commande, qui est utilisée pour interroger et afficher les journaux du journal systemd. -
-n 10>: Spécifie le nombre de lignes à afficher. Dans ce cas,-n 10>instruitjournalctl>pour afficher les 10 dernières entrées du journal.
journalctl -n 10>
Sécuriser un service à l'aide de systemd est une pratique essentielle pour protéger votre système contre les vulnérabilités potentielles et les accès non autorisés. Voici un guide simplifié sur la façon d’y parvenir :
1. Comprendre les fichiers des unités de service
- Configuration des services : Chaque service de systemd est géré par un fichier unité, généralement situé dans
/etc/systemd/system/>. Ces fichiers définissent le fonctionnement du service, notamment son comportement de démarrage, ses limites de ressources et ses paramètres de sécurité.
2. Restreindre les autorisations de service
- Autorisations des utilisateurs et des groupes : Spécifiez l'utilisateur et le groupe sous lesquels le service s'exécute. Évitez d'utiliser l'utilisateur root autant que possible pour minimiser l'impact des failles de sécurité.
3. Utiliser les fonctionnalités de sécurité de systemd
- PrivéTmp : Activer le privé
/tmp>et/var/tmp>répertoires du service afin d’éviter les fuites d’informations entre les différents services. - ProtectSystem et ProtectHome : définissez ces options pour restreindre l'accès aux répertoires système et aux répertoires personnels des utilisateurs, respectivement, afin d'améliorer la sécurité du système.
- ReadOnlyPaths et ReadWritePaths : Spécifiez les répertoires dans lesquels le service peut lire ou écrire. Limiter l'accès en écriture peut empêcher toute modification involontaire des fichiers critiques.
4. Limiter l'utilisation des ressources
image comme arrière-plan en CSS
- Limiter le processeur et la mémoire : Utiliser
CPUQuota>etMemoryLimit>des options pour restreindre l’utilisation du processeur et de la mémoire du service, empêchant ainsi les attaques par épuisement des ressources.
5. Activer les contrôles réseau
- Restreindre l'accès au réseau : Utiliser
RestrictAddressFamilies>,IPAddressAllow>, etIPAddressDeny>des options pour contrôler l’accès au réseau pour le service, limitant ainsi son exposition aux menaces potentielles.
6. Définir les autorisations du système de fichiers
- Autorisations du système de fichiers : assurez-vous que les fichiers et répertoires du service disposent des autorisations appropriées (
chmod>) et la propriété (chown>) pour empêcher tout accès non autorisé.
7. Mettre à jour et surveiller régulièrement
- Garder le système à jour : Mettez régulièrement à jour votre système et vos logiciels de service pour corriger les vulnérabilités de sécurité et garantir que vos mesures de sécurité restent efficaces.
- Surveiller les journaux : Surveiller les journaux du journal système (
journalctl>) pour toute activité suspecte ou événement lié à la sécurité, et prendre les mesures appropriées si nécessaire.
Conclusion
Nous avons discuté de systemctl, un outil de ligne de commande essentiel pour la gestion des services système sous Linux, jouant un rôle crucial dans des tâches telles que le démarrage, l'arrêt, le redémarrage, l'activation et la désactivation des services. Cet article a fourni un guide complet sur systemctl, couvrant sa syntaxe et ses commandes clés. De la liste des unités systemd disponibles à l'activation ou à la désactivation du démarrage automatique, chaque commande contribue à une gestion efficace des services. L'article aborde également des questions courantes, proposant des solutions pratiques pour des tâches telles que la vérification de l'état des services, le démarrage, l'arrêt et le redémarrage des services, ainsi que l'activation ou la désactivation du démarrage automatique. Dans l’ensemble, la compréhension et la maîtrise des commandes systemctl sont essentielles pour Administrateurs Linux pour assurer la stabilité et les performances optimales de leurs systèmes.
Systemctl – FAQ
Qu'est-ce qu'un service Linux ?
Un service Linux est un processus ou une application en arrière-plan qui s'exécute indépendamment de l'interaction de l'utilisateur, fournissant des fonctionnalités spécifiques ou effectuant des tâches système. Il est géré par le système d'initialisation, généralement systemd, et peut être démarré, arrêté et géré à l'aide de commandes telles que
systemctl>.
Quelle est la différence entre Systemctl et service ?
systemctl>est un outil de ligne de commande utilisé pour gérer les services systemd, tandis queservice>est un lien symbolique verssystemctl>sur de nombreux systèmes, offrant une compatibilité avec les anciens scripts d'initialisation.
Comment vérifier l’état du service sous Linux ?
Utiliser `
systemctl status `>pour voir si le service est en cours d'exécution, actif (récemment arrêté) ou inactif (jamais démarré). Cela révèle des informations importantes telles que l'utilisation de la mémoire et les connexions actives.
Comment démarrer, arrêter, redémarrer un service ?
Pour commencer , utiliser :
sudo systemctl start>Pour arrêter , utiliser :
sudo systemctl stop>Recommencer , utiliser :
sudo systemctl restart>Note : N'oubliez pas de remplacer
>avec le nom réel du service.
Comment faire démarrer automatiquement un service au démarrage ?
Utiliser
sudo `>systemctl enable `>pour configurer le service pour qu'il démarre automatiquement au démarrage du système.Pour désactiver le démarrage automatique, utilisez `
sudo systemctl disable `>.