systemd

Systemd - Comment il démarre Votre système

Systemd - Comment il 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 anciens systèmes parcourent leurs fichiers de démarrage système un par un. Cela peut entraîner l'arrêt du démarrage lors de l'attente de ressources lentes. Un exemple de ceci est lorsqu'un processus doit faire fonctionner le réseau. L'utilisation du réseau est très lente, les autres ressources ne devraient pas attendre. Ce problème peut être atténué par d'autres moyens mais avec systemd, tous les démarrages sont effectués en parallèle dans la mesure du possible. Le résultat devrait être un démarrage beaucoup plus rapide pour les systèmes complexes, ce qui inclut votre système de bureau.

Systemd : Père de tous les autres processus

Un système Linux, et tout autre *nix, démarre 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 d'initialisation. Une fois que systemd est en cours d'exécution, il démarre les démons qui exécutent les sous-systèmes. Les démons contrôlent les ressources dont vous disposez et les systèmes 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 montages instantanés.

Comment contrôlez-vous ce qui commence?

Tout d'abord, le premier système d'initialisation avait des niveaux d'exécution que de nombreux lecteurs reconnaîtront. Le niveau d'exécution 1 était le mode mono-utilisateur, 2 le mode multi-utilisateur sans réseau et 3-5 multi-utilisateur et graphique. Définir le niveau d'exécution à 0 signifiait un arrêt et 6 signifiait un redémarrage. Les développeurs de systemd ont trouvé que ces niveaux n'étaient pas clairs et les ont donc changés pour être appelés 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 est en cours d'exécution. Plus sur les unités plus tard.

Définition du « niveau d'exécution », appelé cible.

Vous pouvez modifier la cible pendant l'exécution, par exemple, vous pouvez utiliser un terminal pour définir votre cible sur multi-utilisateur. Cela arrêterait votre interface graphique, X ou Wayland mais vous permettrait, ainsi qu'à d'autres, de vous connecter avec une console de texte. Utilisez la commande suivante.

$ systemctl isoler multi-utilisateur.cible

Ou, si vous souhaitez démarrer votre bureau, utilisez plutôt la commande suivante.

$ systemctl isoler graphique.cible

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

$ systemctl get-default

Pour changer la valeur par défaut, définissez-la.

$ systemctl set-default graphique.cible

Cette commande fait démarrer de nombreuses unités et services lorsque vous démarrez votre ordinateur. Vous voudrez peut-être démarrer ou arrêter un seul service cependant.

DÉMARRER, arrêter, activer et désactiver un service.

C'est là que vous avez la possibilité 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 'start' et 'restart'. Pour faire démarrer un service au démarrage, vous utilisez 'activer', pour l'arrêter 'désactiver'. Choisissez un service, démarrez-le et arrêtez-le pendant son exécution.

$ systemctl status cups.un service

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

$ systemctl arrêter les gobelets.un service

Le service est maintenant arrêté pour votre session en cours. Pour le changer pour qu'il ne démarre pas au prochain démarrage, utilisez disable.

$ systemctl désactiver les tasses.un service

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

Systemd contrôle également les supports, les périphériques, les sockets et plus encore. Les unités sont plus basses et plus faciles à comprendre, si vous avez déjà eu affaire à Linux. Vous pouvez également les définir vous-même, mais le plus grand effet sur le démarrage est de contrôler les services.

Comment ajouter vos propres scripts?

Vous pouvez ajouter vos propres scripts assez facilement, les détails qu'il est intéressant de connaître sont de savoir comment vous faites dépendre votre script ou service des autres. Ceci est clairement démontré dans ce fichier de service de reprise wifi.

[Unité]
Description=Redémarrer le gestionnaire de réseau à la reprise
Après=suspendre.cible
Après = hiberner.cible
Après=sommeil hybride.cible
 
[Un service]
Type=oneshot
ExecStart=/bin/systemctl redémarrer le gestionnaire de réseau.un service
 
[Installer]
WantedBy=suspendre.cible
WantedBy=hiberner.cible
WantedBy=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 qui est exécuté est dans ce cas une seule commande. Vous pouvez tout aussi bien pointer ExecStart vers un script de votre choix.

Conclusion

Changer votre système, notamment comment il démarre, vous pouvez le faire vous-même mais attention cela a de nombreuses conséquences pour chaque service alors assurez-vous que votre code est stable et rapide à exécuter.

Comment booster les FPS sous Linux?
FPS signifie Images par seconde. La tâche du FPS est de mesurer la fréquence d'images dans les lectures vidéo ou les performances de jeu. En termes si...
Meilleurs jeux de laboratoire d'applications Oculus
Si vous êtes propriétaire d'un casque Oculus, vous devez être au courant du chargement latéral. Le chargement latéral est le processus d'installation ...
Top 10 des jeux à jouer sur Ubuntu
La plate-forme Windows a été l'une des plates-formes dominantes pour les jeux en raison du pourcentage énorme de jeux qui se développent aujourd'hui p...