GNU/Linux >> Tutoriels Linux >  >> Linux

Tout sur les démons sous Linux

Étant donné que le système d'exploitation Linux est caractérisé comme un système d'exploitation multitâche, un démon est, par définition, un programme qui s'exécute en continu en tant que processus d'arrière-plan. En bref, l'exécution de ce processus ne dépend pas de l'interaction système d'un utilisateur actif. Un utilisateur normal du système ne peut pas contrôler l'exécution périodique d'un processus démon.

La convention de dénomination qui définit la plupart des processus démons est le "suffixe" à une lettre d. Cette convention de nommage permet de faire la différence entre les processus système normaux et les processus alimentés par un démon. Par exemple,sshd est un processus démon responsable de la gestion des entrées SSH Connexions. Un autre exemple de processus démon est syslogd . Il est responsable de la fonction de journalisation du système Linux.

Dans un environnement Linux, le lancement des démons se fait au démarrage. Étant donné que le système Linux est un clone Unix parfait, un processus init est considéré comme le processus parent d'un démon. Pour démarrer et arrêter les démons sur votre système d'exploitation Linux, vous devez d'abord accéder au /etc/init.d répertoire de scripts sur votre système d'exploitation.

Fonctions communes des démons

  • Il permet à votre système de répondre correctement aux requêtes réseau en associant chaque requête à un port réseau compatible. Un port réseau typique géré par les démons est le port 80.
  • Les démons permettent d'exécuter ou d'exécuter des tâches système planifiées. Le démon responsable de cette tâche spécifique s'appelle cron . Cela créera une tâche cron qui gérera l'exécution périodique de vos tâches planifiées.
  • Les démons offrent également une contribution inestimable à la surveillance des performances de votre système. Par exemple, ils peuvent vérifier l'intégrité de la matrice RAID ou du disque dur.

Démons de service Linux utiles

  • amd :démon de montage automatique
  • anacron : Exécution au démarrage des tâches cron retardées
  • apmd : Démon avancé de gestion de l'alimentation
  • atd : Utilise la fonctionnalité de l'outil pour exécuter les tâches en file d'attente
  • autofs : fonctionne de pair avec le démon de montage automatique pour faciliter le montage et le démontage des périphériques système à la demande
  • crond : un démon qui gère la planification des tâches
  • cupsd : un démon qui gère l'impression CUPS
  • DHCP : démon pour le serveur de protocole Internet Bootstrap et le protocole de configuration dynamique de l'hôte.
  • fermé : démon de routage responsable de plusieurs protocoles de routage. Il remplace routed et egpup
  • httpd : un démon qui gère les serveurs Web comme Apache
  • inetd : démon associé à Internet Superserver
  • imapd :démon pour le serveur IMAP
  • lpd : Démon d'imprimante en ligne
  • mémcaché : démon de mise en cache d'objet distribué en mémoire
  • monté : démon de montage
  • MySQL : démon pour le serveur de base de données MySQL
  • nommé : démon pour le serveur DNS
  • nfsd : Démon de partage de fichiers réseau
  • nfslock : Comme nfsd est associé à des services de verrouillage de fichiers, ce démon peut démarrer et arrêter ces services.
  • nmbd : démon pour Network Message Block
  • ntpd : démon pour le service Network Time Protocol
  • suffixe : un démon qui sert d'agent de transport de courrier. C'est une alternative à sendmail.
  • Postgresql : démon pour le serveur de base de données Postgres
  • acheminé : démon de gestion des tables de routage
  • rpcbind : démon associé à Remote Procedure Call Bind
  • envoyer un e-mail : un démon qui sert d'agent de transfert de courrier
  • smbd : démon pour le serveur Samba SMB
  • smtpd : démon pour le protocole de transfert de courrier simple
  • snmpd : démon pour le protocole de gestion de réseau simple
  • calmar : démon associé à un serveur proxy pour la mise en cache des pages Web
  • sshd : démon associé à Secure Shell Server
  • syncd : démon pour synchroniser la mémoire système avec les fichiers système
  • Syslog : un démon qui effectue la journalisation du système
  • tcpd : ce wrapper de service démon exécute les protocoles de restriction d'accès liés aux services démon basés sur inetd. Il implémente ces restrictions via hosts.allow et hosts.deny .
  • Telnetd : démon pour le serveur telnet
  • vsftpd : démon pour un protocole de transfert de fichiers très sécurisé
  • webmin : démon pour le serveur d'administration Web
  • xinetd : démon associé à Enhanced Internet Supervisor
  • xntd :démon pour Network Time Server

Que vous soyez un utilisateur débutant, intermédiaire ou expert dans le monde du système d'exploitation Linux, vous ne manquerez jamais de vous familiariser avec l'un des démons énumérés ci-dessus au fur et à mesure que vous développerez vos compétences et votre expertise dans cet environnement de système d'exploitation.

Démarrer/arrêter/redémarrer les démons :l'approche basée sur les terminaux

Maintenant que vous avez une liste de démons Linux utiles à mémoriser et à explorer, la première chose que vous devez savoir est de savoir comment démarrer, arrêter ou redémarrer ces démons. Une fois votre terminal Linux lancé, tenez compte des règles de syntaxe suivantes pour démarrer, arrêter et redémarrer un démon sur votre système d'exploitation Linux.

service preferred-daemon-name start

service preferred-daemon-name stop 

service preferred-daemon-name restart

Remplacez le nom-du-démon-préféré argument de syntaxe avec le nom du démon système Linux de votre choix. Vous pouvez en choisir un dans la liste des démons mis en évidence ci-dessus tant qu'il est actif ou déjà défini sur votre système Linux. Par exemple, nous pouvons implémenter l'utilisation pratique de la syntaxe ci-dessus en essayant de démarrer, d'arrêter et de redémarrer un démon. Accédez à /etc/init.d répertoire sur votre terminal pour la liste des démons disponibles sur votre système Linux.

Répertorier les démons de vos systèmes Linux

Un moyen plus efficace de noter les démons disponibles sur votre système Linux au lieu de naviguer vers /etc/init.d répertoire est de lister tous les démons actifs et inactifs définis à partir de ce répertoire avec une seule commande. La commande suivante est efficace pour atteindre cet objectif.

$ service –status-all

Les signes positifs [+] et négatifs [-] entre accolades précédant les noms de démons indiqués impliquent qu'ils sont respectivement actifs ou inactifs.

Travailler avec des démons définis par l'utilisateur

Des règles ou des protocoles spécifiques doivent être suivis pour créer et implémenter avec succès un démon défini par l'utilisateur. Ces protocoles vous aident à comprendre pleinement l'exécution des démons sur n'importe quel environnement Linux. Les démons sont également suffisamment flexibles pour s'interfacer avec les modules du noyau via des appels système. Cette extension de fonctionnalité de démon prend en charge son interaction avec des périphériques matériels tels que les PDA (assistants numériques personnels), les imprimantes et les cartes contrôleur externes viables. Les éléments constitutifs des démons contribuent également à la puissance et à la flexibilité caractéristiques du système d'exploitation Linux.

Une implémentation de démon relatable utilisant Python est soigneusement démontrée et documentée par Sander Marechal. Veillez à suivre l'ordre d'exécution lors de la création de ce démon. Tout d'abord, votre système Linux a besoin de l'installation de packages Python pour développer des démons avec succès. Pour installer Python, vous pouvez utiliser la commande suivante.

$ sudo apt install python3-pip python3-dev

Le lien vers le code du démon Python de Sander Marechal propose également une version raffinée du code Python 3. Il serait utile que vous envisagiez de l'implémenter pour mieux comprendre le fonctionnement des démons.

Si vous ne savez pas si Python est installé, exécutez la commande suivante sur votre terminal Linux.

$ python3 --version

Le but de tout démon

Puisqu'un seul démon est dédié à la gestion d'une tâche spécifique, il doit l'exécuter à la perfection. La tâche en question peut être aussi simple que de créer un rapport et de l'envoyer à un administrateur via sendmail ou aussi complexe que de gérer plusieurs domaines liés à plusieurs boîtes aux lettres. À un moment donné, le démon que vous allez créer devra communiquer avec d'autres démons existants.

interaction utilisateur-démon

Il est déconseillé de faire communiquer directement l'utilisateur système et le démon créé. S'il est nécessaire pour le démon, vous créez pour communiquer avec un utilisateur du système. Cette communication peut être facilitée par quelque chose comme une interface graphique. Cette plate-forme de communication peut avoir soit la complexité de l'interface graphique GTK+, soit la simplicité de l'ensemble de signaux.

Création de votre démon

De nombreuses approches prennent en charge la création de démons. Par exemple, vous pouvez utiliser votre interface de ligne de commande pour démoniser un script Python comme suit :

$ python my_python_script.py &

Vous pouvez enregistrer le code du démon Python3 créé par Sander Marechal dans un fichier Python et le démoniser avec la commande ci-dessus. Bien que la commande de terminal ci-dessus crée facilement un démon pour vous, vous devrez faire face à des défis tels que des sorties de terminal imprévisibles. Ces défis dépendent de la qualité de la refactorisation de votre code de démon Python. De plus, l'approche ci-dessus ne prend pas en charge l'attribution de fichiers de verrouillage PID à des démons spécifiques. Cela rend impossible le contrôle d'un démon car la plupart d'entre eux s'exécuteront instantanément. D'autre part, si vous n'avez besoin que d'un démon simple, l'approche mentionnée ci-dessus vous donnera les résultats de démon souhaités.

Structure de base du démon

Avant qu'un démon n'exécute ou n'exécute une fonction prévue, il devra tenir compte de certaines règles préconçues menant à son exécution. Vous pouvez considérer ces règles comme des tâches ménagères de bas niveau menant à sa tâche réelle. Ces règles peuvent être décomposées en étapes suivantes.

  • La création d'un fork à partir d'un processus parent a lieu en premier
  • La modification de umask (masque de mode fichier) suit
  • Les journaux sont ouverts en écriture
  • Un SID (ID de session) unique est créé
  • L'exécution passe du répertoire de travail actuel à un emplacement secondaire pour préserver l'intégrité des fichiers
  • Les descripteurs de fichiers standard sont fermés
  • Exécution du code démon ciblé

Plus d'informations sur les implémentations d'exemples de démons peuvent être trouvées sur GitHub.


Linux
  1. Configuration système requise pour Kali Linux

  2. Commande d'arrêt de Linux

  3. Commande Fsck sous Linux

  4. En savoir plus sur votre système Linux avec inxi

  5. Linux - Tout est un fichier ?

Tout ce que vous devez savoir sur le système d'exploitation Linux Zorin

Tout ce que vous devez savoir sur le système d'exploitation Peppermint Linux

FreeBSD vs Linux :20 choses à savoir sur le système

Tout ce que vous devez savoir sur Black Lab Linux

Tout ce que vous devez savoir sur la distribution Linux Mint

Tout ce que vous devez savoir sur les inodes sous Linux