OS: Manjaro 19.1 (certainement)
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).
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é?
--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.
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.
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.)
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.
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