Systemd - Comment cela démarre votre système

Systemd - Comment cela démarre votre système
SystemD a été développé lorsque les développeurs ont constaté que le démarrage du système en parallèle n'était pas possible. Les systèmes plus anciens passe par leurs fichiers de démarrage système un par un. Cela peut entraîner l'arrêt du démarrage lorsque vous attendez des ressources lentes. Un exemple de cela est lorsqu'un processus doit faire fonctionner le réseau. L'utilisation du réseau est très lente, d'autres ressources ne devraient pas avoir à attendre. Ce problème peut être atténué par d'autres moyens, mais avec Systemd, tout le démarrage est fait en parallèle dans la mesure du possible. Le résultat devrait être une startup beaucoup plus rapide pour les systèmes complexes, qui comprend votre système de bureau.

Systemd: père de tous les autres processus

Un système Linux, et tout autre * Nix, commence toujours un processus qui est le père de tous les autres processus. Lorsque vous utilisez SystemD, ce processus est SystemD, le processus est toujours appelé «init», quel que soit le système INIT. Une fois SystemD en cours d'exécution, il démarrera les démons qui exécutent les sous-systèmes. Les démons contrôlent les ressources dont vous disposez et quels systèmes sont ouverts. Votre invite de connexion est un service géré par Systemd. Systemd démarre de nombreux autres services et monte également tous vos disques, y compris les montures Snap.

Comment contrôlez-vous ce qui commence?

Tout d'abord, le premier système d'initial avait des niveaux ambulants que de nombreux lecteurs reconnaîtront. RunLevel 1 était en mode utilisateur unique, 2 mode multi-utilisateurs sans réseau et 3-5 multi-utilisateurs et graphiques. Régler le niveau de coulée sur 0 signifiait Halt et 6 signifiait redémarrer. Les développeurs de Systemd ont constaté que ces niveaux ne sont pas clairs, donc il a changé pour être appelé cibles. Les cibles ne sont pas exactement les mêmes mais ont une fonction similaire. Lorsqu'une cible spécifique est en cours d'exécution, une collection spécifique d'unités fonctionne. Plus sur les unités plus tard.

Définition du «coulent», appelé cible.

Vous pouvez modifier la cible lors de l'exécution, par exemple, vous pouvez utiliser un terminal pour définir votre cible sur Multi-utilisateur. Cela arrêterait votre GUI, X ou Wayland mais que vous et d'autres, vous connecter avec une console de texte. Utilisez la commande suivante.

$ Systemctl Isolat Multigeser.cible

Ou, si vous souhaitez démarrer votre bureau, utilisez la commande suivante à la place.

$ Systemctl Isolat graphique.cible

Ce qui vous intéresse vraiment, c'est comment démarrer le bon niveau, vous pouvez découvrir ce que vous avez maintenant de cette façon.

$ Systemctl Get-Default

Pour modifier le défaut, définissez-le.

$ SystemCTL Set-Default Graphical.cible

Cette commande fait démarrer beaucoup d'unités et de services lorsque vous démarrez votre ordinateur. Vous pouvez cependant démarrer ou arrêter un seul service.

Démarrage, arrêt, activer et désactiver un service.

C'est là que vous avez une chance de changer ce qui se passe au démarrage et pendant le fonctionnement normal. Contrairement aux cibles, les unités sont spéciales pour un service particulier. Pour arrêter un service, vous utilisez «SystemCTl Stop», vous pouvez également utiliser «Démarrer» et «redémarrer». Pour faire démarrer un service au démarrage, vous utilisez «activer», pour l'arrêter «désactiver». Choisissez un service et commencez et arrêtez-le pendant qu'il fonctionne.

$ SystemCTl Status Cups.service

Cette commande affiche l'état du service, il affiche également une liste des actions prises par le système concernant le service. Pour arrêter le service, utilisez la commande ci-dessous.

$ Systemctl Stop Cups.service

Le service est maintenant arrêté pour votre session actuelle. Pour le changer pour ne pas commencer par la prochaine utilisation de démarrage Désactiver.

$ Systemctl Désactiver les tasses.service

Notez que vous ne pouviez désactiver que le service, cela n'aurait aucun effet sur votre situation actuelle. Le service continue de courir. Au prochain démarrage cependant, il ne démarrera pas le service.

SystemD contrôle également les montures, les appareils, les prises et plus encore. Les unités sont plus basses et plus faciles à comprendre, si vous avez déjà traité un Linux. Vous pouvez également les définir vous-même, mais le plus d'effet sur le démarrage est de contrôler les services.

Comment ajoutez-vous vos propres scripts?

Vous pouvez ajouter vos propres scripts assez facilement, les détails qui sont intéressants à savoir est comment vous faites en sorte que votre script ou votre service dépende des autres. Ceci est soigneusement démontré dans ce fichier de service de résume WiFI.

[Unité]
Description = Redémarrer NetworkManager au CV
Après = suspendre.cible
Après = hibernate.cible
Après = sommeil hybride.cible
[Service]
Type = OneShot
Execstart = / bin / systemctl redémarrer le manager du réseau.service
[Installer]
WANDBY = Suspender.cible
Recherché = hibernate.cible
Recherché = sommeil hybride.cible

Ce code crée un service qui se produit une fois (Oneshot) après les trois cibles mentionnées dans le code. Le code exécuté est dans ce cas une seule commande. Vous pouvez tout aussi bien indiquer l'exécutif à un script de votre choix.

Conclusion

Changer votre système, en particulier la façon dont il bottise, vous pouvez faire vous-même, mais méfiez-vous que cela a de nombreuses conséquences pour chaque service, alors assurez-vous que votre code est stable et rapide à exécuter.