Introduction aux services système sous Linux - init, systemd

齐天大圣
Libérer: 2020-11-10 14:04:58
original
2458 Les gens l'ont consulté

On entend souvent les mots service et démon, que signifient-ils ? Y a-t-il des différences et des liens entre eux ? Les services sous Linux sont des programmes qui résident en mémoire et peuvent fournir certaines fonctions système ou réseau. La traduction littérale de démon est processus démon ou processus d'arrière-plan. Ainsi, vous pouvez considérer le service et le démon comme une seule et même chose sans les distinguer.

Mécanisme de gestion des premiers init

Dans centOS6, le mécanisme de gestion des services d'initialisation était encore utilisé. Voici une brève introduction, car certaines choses peuvent encore être utilisées dans centOS7. Examinez principalement les fonctionnalités suivantes :

Démarrage, arrêt et vérification de l'état des services, etc.

  • Démarrer le service : /etc/ init.d/ nginx start

  • Redémarrer le service : /etc/init.d/nginx restart

  • Fermer le service : /etc/ init.d/nginx stop

  • Vue de l'état : /etc/init.d/nginx status

Méthode de démarrage du service

  • Démarrage indépendant : la plupart des services adoptent ce mode, comme mysqld commun, php-fpm, nginx, httpd et d'autres services.

  • Hébergé et démarré par un super démon : le démarrage de ces services est hébergé par un autre service. Le service qui héberge ces services devient un super démon. Les super démons courants incluent inetd et xinetd.

Niveau d'exécution

Il existe 7 niveaux d'exécution sous Linux, à savoir 0, 1, 2, 3, 4, 5 et 6. Ceux couramment utilisés incluent

  • 1 Mode de maintenance solo

  • 3 Mode texte brut

  • 5 Mode graphique

Les scripts de démarrage de chaque niveau d'exécution sont liés à /etc/init.d/daemon via /etc/rc[0-6].d/SNNdaemon.

ll /etc/rc3.d/S55nginx 
lrwxrwxrwx 1 root root 15 Sep 21 11:30 /etc/rc3.d/S55nginx -> ../init.d/nginx
Copier après la connexion

S signifie démarrage et NN signifie nombres. Ces nombres indiquent l'ordre d'exécution du script. Plus le nombre est petit, plus il sera exécuté en premier. Cet ordre d'exécution peut bien gérer les dépendances de service.

Service de démarrage automatique au démarrage

  • Démarrage automatique au démarrage : chkconfig sur démon

  • Fermer activer le démarrage automatique Démarrer : chkconfig off deamon

  • Vérifier si le service est démarré : chkconfig --list daemon

mécanisme de gestion systemd

Depuis centos7, le mécanisme de gestion d'initialisation précédent a été abandonné et systemd a été utilisé à la place. Jetons un coup d'œil à ce qui est différent dans la gestion systemd.

Traitez tous les services en parallèle pour accélérer le processus de démarrage.

Contrairement à init qui démarre les services un par un, systemd peut démarrer plusieurs services en même temps. Par conséquent, cela accélérera considérablement le temps d’attente pour le démarrage.

Résoudre les dépendances du service

Par exemple, pour démarrer le service B, vous devez d'abord démarrer le service A. À ce stade, utilisez systemd pour démarrer le service B, et il le fera vérifie automatiquement la dépendance, puis démarre le service A avant de démarrer le service B.

type d'unité

Par rapport au démon autonome et au super démon, qui n'ont que deux méthodes de démarrage dans init, systemd définit une unité de service unifiée (unité) et une unité divisée en : service, socket, cible, chemin, instantané, minuterie et autres types.

Script de service d'initialisation rétrocompatible

L'ancien script de démarrage du service sous /etc/inid.d/ peut également être géré via systemd. Remarque : Si vous démarrez manuellement le script de démarrage du service dans le répertoire /etc/init.d, systemd ne pourra pas détecter l'état d'exécution du service.

# systemctl status mysqld
● mysqld.service - LSB: start and stop MySQL
   Loaded: loaded (/etc/rc.d/init.d/mysqld; bad; vendor preset: disabled)
   Active: active (running) since Wed 2020-10-28 13:26:53 CST; 1 weeks 5 days ago
……
# /etc/init.d/mysqld restart
Shutting down MySQL....                                    [  OK  ]
Starting MySQL.                                            [  OK  ]
[root@lijia ~]# systemctl status mysqld
● mysqld.service - LSB: start and stop MySQL
   Loaded: loaded (/etc/rc.d/init.d/mysqld; bad; vendor preset: disabled)
   Active: active (exited) since Wed 2020-10-28 13:26:53 CST; 1 weeks 5 days ago
……
Copier après la connexion

Concernant init et systemd, nous devons nous concentrer sur la maîtrise de systemd, et nous devons également comprendre init.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal