Ich weiß, dass alle von ihnen Unit-Dateien sind, aber ich kann die spezielle Bedeutung von ihnen nicht verstehen. Ich denke, dass Ziele Daemons und Sockets ähnlich sind wie Socket (IP + Port), aber auch mit Inode-Nummern. Könnte jemand sie bitte in einfachen Worten erklären?
35
man
Seiten sind vorbildlich: haben Sie sich angesehenman systemd.{service,socket,target}
?Antworten:
Serviceeinheiten:
- Systemdienst (5)
Systemd-Serviceeinheiten sind die Einheiten, die Programme und Daemons tatsächlich ausführen und verfolgen. Abhängigkeiten werden verwendet, um sicherzustellen, dass die Services in der richtigen Reihenfolge gestartet werden. Sie sind die am häufigsten verwendeten Gerätetypen.
Steckdoseneinheiten:
- systemd.socket (5)
Socket-Einheiten hingegen starten keine eigenen Daemons. Stattdessen sitzen sie nur da und lauschen einer IP-Adresse und einem Port oder einem UNIX-Domain-Socket. Wenn eine Verbindung hergestellt wird, wird der Daemon gestartet, für den der Socket bestimmt ist, und die Verbindung wird an ihn übergeben.
Dies ist nützlich, um sicherzustellen, dass große Daemons, die viel Ressourcen beanspruchen, aber nur selten verwendet werden, nicht ständig ausgeführt werden und Ressourcen beanspruchen, sondern nur bei Bedarf gestartet werden.
Zieleinheiten:
- systemd.target (5)
Ziele werden zum Gruppieren und Ordnen von Einheiten verwendet. Sie entsprechen in etwa Runleveln, da auf unterschiedlichen Zielen unterschiedliche Dienste, Sockets und andere Einheiten gestartet werden. Im Gegensatz zu Runlevels sind sie viel freier und Sie können leicht Ihre eigenen Ziele für die Bestellung von Einheiten erstellen, und Ziele haben Abhängigkeiten untereinander.
Zum Beispiel
multi-user.target
sind die meisten Daemons unter gruppiert undbasic.target
müssen aktiviert werden, was bedeutet, dass alle unter gruppierten Dienstebasic.target
vor denen in gestartet werdenmulti-user.target
.quelle
Die Dokumentation für systemd eignet sich hervorragend für ein so relativ neues Projekt. Beginnen Sie mit Zielen von
man systemd.target
:Diese "Gruppen von Einheiten" decken eine Reihe verschiedener Funktionalitäten ab, von
basic.target
denen im Wesentlichen das Hochfahren des Systems bis hin zu allen Dbus-, Gettys-, Mount-Punkten-, Swap- und Timern-Funktionen umfasst sind. Die vollständige Liste sehen Sie mitman systemd.special
.Servicedateien sind die Basiseinheiten für die Ausführung von Prozessen, die von systemd gesteuert werden. Wiederum von
man systemd.service
:Dies sind die Daemons, die gestartet, gestoppt, neu gestartet und neu geladen werden können.
Schließlich Steckdosen , von
man systemd.socket
:Diese decken einen Socket im Dateisystem oder im Internet sowie klassische FIFOs als Transport ab. Jede Socket-Einheit verfügt über eine passende Service-Einheit, die gestartet wird, wenn die erste Verbindung auf dem Socket oder FIFO eingeht.
Zusätzlich zu den
man
Seiten lohnt es sich, Lennarts Reihe von Blogposts zu lesen, systemd for Administrators , die einen detaillierten Einblick in die Architektur und Implementierung von systemd bietet (derzeit gibt es 20 Posts in der Reihe).quelle