Systemd-Dienst - was ist "multi-user.target"

40

Ich bin auf eines .servicegestoßen, das Folgendes enthält:

[Install]
WantedBy=multi-user.target

Die Originaldatei .servicefinden Sie HIER .

Ich bin auf Ubuntu 16.04LTS.

eddyP23
quelle
3
Mögliches Duplikat von Was ist das Ziel, der Dienst und der Socket
Muru
2
Es ist kein richtiges Duplikat, da sich diese Frage (über den Titel hinausgehend) auf den [Install]Abschnitt einer Unit-Datei bezieht. Ironischerweise ist es der nächste Tisch nach dem in der Frage verlinkten.
JdeBP
Diese neue verwandte Frage enthält viel mehr Details in der Antwort und ist sehr lesenswert.
Wildcard

Antworten:

15

Dies ist der Mechanismus zur Behandlung von Abhängigkeiten in systemd. multi-user.target ist die Alternative für Runlevel 3 in der SystemV-Welt. Das Erreichen von multi-user.target umfasst das Starten des Dienstes "Confluent ZooKeeper". Wahrscheinlich brauchen Sie das auch.

George Ivanov
quelle
18

multi-user.target bedeutet, dass der Systemd-Dienst gestartet wird, wenn das System Runlevel 2 erreicht.

Um die Antwort zu vervollständigen, finden Sie hier eine Tabelle der Ziele und ihrer Laufstufen:

Run Lvl Target Units                        Description
0       runlevel0.target, poweroff.target   Shut down and power off
1       runlevel1.target, rescue.target     Set up a rescue shell
2,3,4   runlevel[234].target,               Set up a non-gfx multi-user shell
        multi-user.target
5       runlevel5.target, graphical.target  Set up a gfx multi-user shell
6       runlevel6.target, reboot.target     Shut down and reboot the system
Tobias Holm
quelle
Aber es ist WantedBy = multi-user.target, was bedeutet, dass der Dienst gestartet wird und vor Runlevel 2, oder? Nicht unbedingt, wenn das System Runlevel 2 erreicht, irre ich mich?
Tristan
Was ist eine gfxMehrbenutzer-Shell? Irgendeine Referenz?
Giuseppe Crinò
Eine gfx Multi-User-Shell bezieht sich auf ein Multi-User-System mit einer GUI.
Tobias Holm
3

Ich fand dieses Tutorial am einfachsten zu verstehen. Sie können den folgenden Befehl selbst ausführen, um zu sehen, was sich dort befindet:

$ ls -al /lib/systemd/system/runlevel*
lrwxrwxrwx. 1 root root 15 Apr 25 10:31 /lib/systemd/system/runlevel0.target -> poweroff.target
lrwxrwxrwx. 1 root root 13 Apr 25 10:31 /lib/systemd/system/runlevel1.target -> rescue.target
lrwxrwxrwx. 1 root root 17 Apr 25 10:31 /lib/systemd/system/runlevel2.target -> multi-user.target
lrwxrwxrwx. 1 root root 17 Apr 25 10:31 /lib/systemd/system/runlevel3.target -> multi-user.target
lrwxrwxrwx. 1 root root 17 Apr 25 10:31 /lib/systemd/system/runlevel4.target -> multi-user.target
lrwxrwxrwx. 1 root root 16 Apr 25 10:31 /lib/systemd/system/runlevel5.target -> graphical.target
lrwxrwxrwx. 1 root root 13 Apr 25 10:31 /lib/systemd/system/runlevel6.target -> reboot.target

Aber Sie sollten wahrscheinlich nur die verknüpfte Frage lesen, die als Antwort auf Ziele akzeptiert wurde .

icc97
quelle