Votre PC Linux a des démons. Voici tout ce que vous devez savoir à leur sujet
Sommaire
Résumé
-
Les démons sont des programmes Linux essentiels effectuant des tâches. SystemD's; SystemCTL fournit des procédures pour gérer, démarrer ou les arrêter efficacement.
-
Les démons ont été inspirés par le concept de démon de Maxwell en physique. SystemD gère les tâches du système Linux modernes. Connaître les fonctions des démons est crucial.
-
Utilisez des commandes comme SystemCTL pour afficher les démons en cours d'exécution, activer / désactiver les démons et les services de démarrage / stop sur un système Linux. Comprendre les démons peut rendre la gestion des systèmes sans effort.
Vous avez peut-être entendu le terme « démon » concernant Linux. Quels sont-ils? Ont-ils quelque chose à avoir peur? Ces petits programmes d'aide sont une partie importante de Linux et aideront à prendre soin de vos systèmes et à gérer des services essentiels.
Que sont les démons?
Dans Linux, les démons sont des programmes qui s'exécutent indépendamment pour effectuer diverses tâches sur le système. Ce sont des choses comme l'exécution de Cron pour exécuter des tâches à des moments précis, écouter les connexions réseau entrantes et nettoyer le système de fichiers, entre autres. Ils ont généralement des noms se terminant par « -d ».
Le concept est apparu dans les années 1960 avec le projet Multics, une tentative ambitieuse de créer ce qui serait maintenant appelé «cloud computing». L'informaticien du MIT Fernando Carbató est reconnu pour inventer le terme dans un contexte informatique, s'inspirant de l'expérience de pensée du physicien James Clark Maxwell sur une molécule de tri de démon imaginaire, connue sous le nom de « Demon de Maxwell ».
Corbató a écrit plus tard l'inspiration du terme:
Le démon de Maxwell était un agent imaginaire qui a aidé à trier les molécules de vitesses différentes et a travaillé sans relâche en arrière-plan. Nous avons commencé à utiliser le mot démon pour décrire les processus de fond qui ont travaillé sans relâche pour effectuer des tâches de système.
Sur d'autres systèmes d'exploitation multitâche, ces types de programmes sont souvent appelés «services». C'est peut-être la meilleure façon de les penser.
Un bon exemple est CROND (prononcé « Cron-D »), qui exécute les tâches spécifiques dans les fichiers Crontab. Sur les principales distros modernes, des tâches qui auraient été gérées par un démon séparé se présentent de plus en plus sous le parapluie Systemd. Si vous regardez les démons en cours d'exécution, cela inclurait des choses comme SystemD-Networkd, SystemD-Journald et SystemD-TimesYnCD.
En rapport
Pourquoi le Systemd de Linux est toujours à la division après toutes ces années
Une décennie après sa première introduction, Systemd est toujours la cible d'une opposition sauvage – mais pourquoi? L'indignation est-elle justifiée?
Les systèmes Linux modernes auront beaucoup de démons en arrière-plan, en particulier sur les serveurs. Même sur les systèmes de bureau, il peut y avoir des dizaines, voire des centaines, en arrière-plan. C'est une des raisons pour lesquelles vous devez graver votre système avec élégance au lieu d'appuyer simplement sur le bouton d'alimentation lorsque vous le pouvez.
Affichage des démons en cours d'exécution
Vous pouvez voir quels démons fonctionnent sur votre système avec quelques commandes simples.
La manière la plus simple sur la plupart des distros modernes est d'utiliser la commande SystemCTL fournie par SystemD. Vous pouvez afficher tous les services de votre système en utilisant simplement SystemCTL seul. Une « unité » est un petit fichier texte qui indique à Systemd comment charger un programme, et d'autres unités dont une unité pourrait avoir, appelée « dépendances », reportant de la gestion des packages.
systemctl list-units
Vous pouvez également afficher les unités Systemd qui sont en fait des démons en répertoriant les services, qui est le terme que Systemd a adopté:
systemctl list-units --type=service
Cela répertorie toutes les unités de service installées sur votre système. Pour voir lesquels sont réellement en cours d'exécution, vous pouvez utiliser cette commande:
systemctl list-units --type-service state=active
Cela vous donnera une liste de services en cours d'exécution. Sur cette machine virtuelle Debian, nous avons un certain nombre de services actifs, y compris Avahi, qui permet au système de se connecter automatiquement à d'autres appareils tels que des imprimantes sur le réseau local, NetworkManager, qui gère la connexion réseau. J'aime la façon dont il est soigneusement disposé dans une table. La section « Description » vous indique ce que ces services font réellement.
Le gestionnaire de tâches Windows vous laisse simplement rechercher ce que ces services mystérieux font par vous-même, mais ils ont au moins un lien rapide pour la rechercher.
L'autre façon classique de visualiser les démons en cours d'exécution est d'utiliser la commande ps. Nous pouvons utiliser les options « AUX » pour afficher tous les processus du système, peu importe à qui ils appartiennent, car la plupart des processus appartiennent au superutilisateur, et vous n'êtes probablement pas le superutilisateur. Si vous l'êtes, vous devriez probablement changer cela rapidement en configurant votre propre compte utilisateur.
Pour voir tous les processus sur le système avec PS:
ps aux
Vous n'aurez pas autant d'informations sur celles-ci sont des démons, mais un bon indice est que si le nom se termine par « -d » comme je l'ai mentionné plus tôt. Le champ « Tty » aura également généralement un « ? » (point d'interrogation), qui indique qu'ils ont été démarrés sans terminal contrôlant.
Vous pouvez également afficher tous les processus en cours d'exécution, y compris les démons, avec le haut ou le HTOP, qui offre une sortie plus colorée.
Activer et désactiver les démons
Vous pouvez activer et désactiver les démons à volonté. Linux est traditionnellement un système d'experts et met peu de barrières sur votre chemin pour gérer votre système comme vous le souhaitez.
La façon la plus courante d'ajouter un nouveau démon à votre système est de l'installer à partir de votre gestionnaire de packages. Par exemple, si vous vouliez installer le serveur Web Nginx sur un système Debian ou Ubuntu, en supposant que vous avez des privilèges administratifs:
sudo apt install nginx
Ce qui se passe par la suite dépend de la distribution que vous utilisez. Certaines distros, comme Debian et Ubuntu, permettront un service sur Boot. D'autres, comme Arch, vous laisseront généralement ce travail. C'est facile à faire avec SystemCTL. Y
Pour activer un démon:
sudo systemctl enable daemon.service
Par exemple, pour activer nginx:
sudo systemctl enable nginx.service
Désactivation des démons à l'aide de SystemCTL est similaire
sudo systemctl disable nginx.service
Assurez-vous de savoir ce qu'un démon fait avant de le désactiver, en particulier ceux qui ont été installés avec votre système. En cas de doute, laissez-le tranquille.
Démarrer et arrêter les démons
Vous n'avez pas à attendre que les redémarrages apportent des modifications aux démons en cours d'exécution. Vous pouvez commencer et arrêter les démons à volonté tant que vous avez des autorisations administratives. Sur la plupart des systèmes Linux, cela signifierait que vous avez accès via le mot de passe racine ou Sudo. Nous utiliserons ce dernier.
Vous voudrez peut-être démarrer un démon lorsque vous en avez installé un. Selon la distribution, il peut être démarré automatiquement lorsque vous installez un démon à partir du gestionnaire de packages de votre distribution. Debian et Ubuntu sont de bons exemples. Sur d'autres distros, vous pourriez être responsable de le démarrer vous-même. Arch Linux est un bon exemple de ce dernier.
Ou vous voudrez peut-être recommencer un démon après l'avoir arrêté plus tôt.
Supposons que vous souhaitiez démarrer le serveur Web Nginx. Pour ce faire en utilisant SystemCTL:
systemctl start nginx.service
Vous pouvez également arrêter les services qui s'exécutent. Encore une fois, vous pouvez utiliser SystemCTL pour arrêter le processus
sudo systemctl stop nginx.service
Le démarrage et l'arrêt des processus de cette façon n'affecteront que le démarrage actuel. Pour apporter des modifications plus permanentes, vous devrez activer ou désactiver les services en utilisant les méthodes mentionnées dans la section « Activation et désactivation des démons ».
Souvent, vous voudrez redémarrer un démon. Vous pourriez avoir mis à jour la version du démon en cours d'exécution ou apporter une modification à sa commande de configuration. Une façon de le faire serait de s'arrêter, puis de recommencer le démon:
sudo systemctl stop daemon.service
sudo systemctl start daemon.service
Vous pouvez le faire dans une ligne de commande et enregistrer un peu d'usure sur vos doigts avec la commande Systemctl Restart. Supposons que vous ayez apporté des modifications à votre serveur Nginx et que vous souhaitiez les tester. Vous pouvez utiliser cette commande:
sudo systemctl restart nginx.service
En rapport
Pourquoi je m'en tiens à des distros Linux basés sur Systemd
Comment j'ai appris à arrêter de m'inquiéter et à aimer Systemd.
C'est à quel point il est facile sur un système Linux moderne. Même avec les plaintes concernant le ballonnement supposé de Systemd, cela a facilité les processus de démarrage et d'arrêt sans avoir à creuser à travers des liens symboliques comme je devais avec l'ancien système sysvinit. Je suppose que de nombreux autres développeurs et systèmes sysadmins ressentent la même chose, étant donné la rapidité avec laquelle Systemd a été accepté dans l'écosystème Linux
Les démons peuvent sembler effrayants si vous n'êtes pas habitué à eux, mais quelques commandes sont tout ce qu'il faut pour les apprivoiser sur votre système Linux. Vous ne les remarquez peut-être pas, mais ils sont toujours là sur votre système Linux, ce qui vous facilite la vie.
