Je veux comprendre à peu près systemd

environnement

OS: Manjaro 19.1 (certainement)

systemd conceptuel

systemd est le premier processus démon (PID: 1) à démarrer sur un système Linux. Démarre d'autres processus et devient le processus ancêtre de tous les processus. Il a également pour but de gérer d'autres processus démons (donc).

commande systemctl

La commande systemctl est principalement utilisée pour étudier et manipuler systemd.

Lorsque vous exécutez la commande systemctl, une liste d'unités apparaîtra comme indiqué ci-dessous.

$ systemctl                  
UNIT                         LOAD   ACTIVE SUB     DESCRIPTION
sys-module-fuse.device       loaded active plugged /sys/module/fuse
-.mount                      loaded active mounted Root Mount
boot-efi.mount               loaded active mounted /boot/efi
systemd-journald.service     loaded active running Journal Service
systemd-logind.service       loaded active running Login Service
[email protected]            loaded failed failed  User Manager for UID 1000
...

Selon la page de manuel, la commande systemctl (= commande systemctl list-units) "affiche la liste des unités que systemd détient en mémoire".

Qu'est-ce qu'une unité?

Qu'est-ce que l'unité

--Toute ressource que systemd sait faire fonctionner et gérer s'appelle une unité. --Défini par un fichier de configuration appelé fichier d'unité.

Eh bien, en d'autres termes, c'est une unité d'objet gérée par systemd.

Faire fonctionner l'unité

Par exemple, spécifiez l'unité comme indiqué ci-dessous et vérifiez son état.

$ systemctl status bluetooth.service

Le bluetooth.service ci-dessus est l'unité.


Une fois que vous obtenez un aperçu.

L'unité semble être, par exemple, service (.service), point de montage ( .mount), périphérique (.device), socket ( .socket). (Je ne comprends pas en détail ici.)

Le nom complet de l'unité est requis lors de l'utilisation de la commande systemctl. En d'autres termes, c'est le précédent bluetooth.service.

Cependant, certaines règles peuvent utiliser des abréviations. Trois.

--Si vous omettez le suffixe, systemctl le comprendra comme .service. Ainsi, «bluetooth.service» peut être écrit comme «bluetooth». --mount point est automatiquement interprété comme .mountʻunit. / home est égal à home.mount. --device est également automatiquement interprété comme .deviceʻunit. / dev / sda2 est égal à dev-sda2.device.


Revenez à nouveau à la commande précédente. Le résultat de sortie est le suivant.

$ systemctl status bluetooth.service
● bluetooth.service - Bluetooth service
   Loaded: loaded (/usr/lib/systemd/system/bluetooth.service; enabled; vendor preset: enabled)
   Active: active (running) since Wed 2017-01-04 13:54:04 EST; 1 weeks 0 days ago
     Docs: man:bluetoothd(8)
 Main PID: 930 (bluetoothd)
   Status: "Running"
    Tasks: 1
   Memory: 648.0K
      CPU: 435ms
   CGroup: /system.slice/bluetooth.service
           └─930 /usr/lib/bluetooth/bluetoothd

Jan 12 10:46:45 example.com bluetoothd[8900]: Not enough free handles to register service
Jan 12 10:46:45 example.com bluetoothd[8900]: Current Time Service could not be registered
Jan 12 10:46:45 example.com bluetoothd[8900]: gatt-time-server: Input/output error (5)

La ligne Chargé indique «chargé» si l'unité est chargée en mémoire. Les autres valeurs sont ʻerror, not-found, bad-setting, masked`. De plus, le chemin du fichier d'unité et s'il est actuellement activé (s'il est démarré au démarrage) sont affichés entre parenthèses.

unit file

Voici le fichier d'unité. D'après le résultat de sortie précédent, il semble que bluetooth.service soit défini dans /usr/lib/systemd/system/bluetooth.service. (Lorsque vous regardez réellement le fichier, le contenu est étonnamment simple.)

En ce qui concerne le fichier d'unité, il semble y avoir une page de manuel, alors jetez-y un coup d'œil. (systemd.unit (5)) Il semble qu'il existe différentes directives composées de plusieurs sections. Ceux-ci définissent probablement l'unité.

De plus, il y avait / usr / lib / systemd / system / * à l'endroit appelé System Unit Search Path. Il semble que le fichier d'unité de l'unité bluetoooth.service ait été recherché à partir de ce répertoire.

Quoi qu'il en soit, j'ai trouvé qu'un fichier d'unité portant le même nom que l'unité était placé dans un répertoire spécifique et l'unité était définie dans ce fichier.

Commande spécifique de systemctl

Maintenant que j'ai compris comment gérer les unités systemd, examinons des commandes spécifiques.

systemctl status <unit>

L'état d'exécution, le chemin du fichier de l'unité, le pid, le dernier journal, etc. sont affichés.

systemctl start <unit>

Démarre immédiatement.

systemctl stop <unit>

Arrêtez immédiatement.

systemctl enabled <unit>

Réglez pour activer. (Défini pour démarrer au moment du démarrage.)

Sommaire

systemd regarde le fichier d'unité dans un répertoire spécifique et gère l'unité d'opération, unit. Ceux-ci peuvent être gérés / manipulés par l'utilisateur avec la commande systemctl.

Jouons en voyant quel type d'unité fonctionne et en vérifiant l'état.

référence

page de manuel systemctl

Arch Linux wiki https://wiki.archlinux.org/index.php/Systemd#Using_units

Understanding Systemd Units and Unit Files https://www.digitalocean.com/community/tutorials/understanding-systemd-units-and-unit-files

Wikipedia https://en.wikipedia.org/wiki/Systemd

Recommended Posts

Je veux comprendre à peu près systemd
Je veux gérer systemd par fuseau horaire! !!
Je veux résoudre SUDOKU
Je veux comprendre (l'ingénierie) UMAP plus fort que t-SNE
Même les débutants veulent dire "Je comprends parfaitement Python"
Je veux bien comprendre les bases de Bokeh
Je veux gratter des images et les former
Je veux faire ○○ avec les Pandas
Je veux copier l'annotation de yolo
Je veux déboguer avec Python
Je veux épingler Spyder à la barre des tâches
Je veux détecter des objets avec OpenCV
Je veux sortir froidement sur la console
Je veux imprimer dans la notation d'inclusion
Je veux les gratter tous ensemble.
Je veux gérer la rime part1
Je veux savoir comment fonctionne LINUX!
Je veux écrire un blog avec Jupyter Notebook
Je veux gérer la rime part3
Je veux utiliser jar de python
Je veux créer un environnement Python
Je veux utiliser Linux sur mac
Je veux installer Python avec PythonAnywhere
Je veux analyser les journaux avec Python
Je veux jouer avec aws avec python
Je souhaite utiliser la console IPython Qt
Je veux afficher la barre de progression
Je veux faire un programme d'automatisation!
Je veux intégrer Matplotlib dans PySimpleGUI
Je veux gérer la rime part2
Je souhaite développer des applications Android sur Android
Je veux que CAPTCHA dise des mots HIWAI
Je veux gérer la rime part5
Je veux gérer la rime part4
Je veux faire de matplotlib un thème sombre
Je souhaite me connecter à PostgreSQL à partir de plusieurs langues
Je veux faire le test de Dunnett en Python
Je veux pouvoir penser à la récurrence
Je souhaite créer facilement un modèle de bruit
Je veux utiliser MATLAB feval avec python
Je veux INSÉRER un DataFrame dans MSSQL
Je veux créer une fenêtre avec Python
Quoi qu'il en soit, je veux vérifier facilement les données JSON
Je souhaite envoyer un e-mail depuis Gmail en utilisant Python.
[Python] Je veux gérer 7DaysToDie depuis Discord! 1/3
Je veux moquer datetime.datetime.now () même avec pytest!
Je souhaite afficher plusieurs images avec matplotlib.
Je veux frapper 100 sciences des données avec Colaboratory
Je veux faire un jeu avec Python
Je veux visualiser les fichiers csv en utilisant Vega-Lite!
Je veux gérer la rime part7 (BOW)
Je veux être OREMO avec setParam!
Je ne veux pas passer un test de codage
Je souhaite stocker les informations de la base de données dans la liste
Je veux fusionner des dictionnaires imbriqués en Python
Je veux faire des crises de ma tête
Je souhaite utiliser le répertoire temporaire avec Python2
Je veux obtenir les données de League of Legends ③