Ich bin seit einiger Zeit ein Ubuntu-Benutzer und bei der Arbeit haben wir viele Ubuntu-VM- Server , die alle ausgeführt werden Ubuntu 14.04 LTS
, um unsere Webanwendungen, Datenbanken und andere Tools bereitzustellen.
Derzeit studiere ich Ubuntu 16.04 LTS
Desktop und Server, um in naher Zukunft ein problemloses Upgrade unserer Produktionsserver durchführen zu können.
Seit Ubuntu 15.04 init
und upstart
wurde ersetzt durch Systemd
, also studiere ich auch Systemd.
Ich habe festgestellt, dass mein Entwicklungscomputer, auf dem Ubuntu 16.04 Desktop Edition ausgeführt wird, graphical.target
standardmäßig das systemd-Ziel hat, was logisch ist.
Aber dann bemerkte ich, dass der Testserver, auf dem Ubuntu 16.04 Server Edition ausgeführt wird, auch graphical.target
als Standardsystemziel verwendet wird.
$ systemctl get-default
graphical.target
Also bin ich verwirrt. Der Server hat keine grafische Ebene. Wie lautet also das Standardziel graphical.target
?
Bearbeiten Sie # 0
Wie Rinzwind in den Kommentaren vorgeschlagen hat, habe ich mir das Ziel angesehen, um zu sehen, ob es aktiv ist oder nicht ...
und die Antwort lautet JA:
admin@server1604:~$ systemctl get-default
graphical.target
admin@server1604:~$ systemctl status graphical.target
● graphical.target - Graphical Interface
Loaded: loaded (/lib/systemd/system/graphical.target; static; vendor preset: enabled)
Active: active since jeu. 2016-10-13 16:03:18 CEST; 46min ago
Docs: man:systemd.special(7)
oct. 13 16:03:18 fdea systemd[1]: Reached target Graphical Interface.
Also bin ich etwas verwirrter.
Bearbeiten Sie # 1
Die Antwort von Mark Stosberg weist darauf hin, dass dieser display-manager.service
Teil des Abhängigkeitsbaums des graphical.target
eigenen 16.04-Servers ist, und er fügt hinzu, dass auf seinem Computer kein Display-Manager installiert ist oder ausgeführt wird. Ich habe mir das auch angesehen, und tatsächlich gibt es auf meinem Server diese Abhängigkeit:
admin@server1604:~$ systemctl list-dependencies graphical.target
graphical.target
● ├─accounts-daemon.service
● ├─apache2.service
● ├─apport.service
● ├─display-manager.service
...
Und dieses Ziel hat links einen roten Kreis, während die meisten anderen Abhängigkeiten einen grünen Kreis haben.
Und dieses Mal ist das Ergebnis konsistent:
[email protected]:~$ systemctl status display-manager.service
● display-manager.service
Loaded: not-found (Reason: No such file or directory)
Active: inactive (dead)
Aber hier ist eine andere seltsame Sache: Auf meiner Desktop-Edition ist das display-manager.service
keine Abhängigkeit von graphical.target
:
[email protected]:~ $ systemctl list-dependencies graphical.target | grep display
[email protected]:~ $
Aber ich fand auch eine Alternative , weil ich laufen Ubuntu-Gnome
mit lightdm
Änderung des Standard - Window - Manager:
[email protected]:~ $ systemctl list-dependencies graphical.target | grep lightdm
● ├─lightdm.service
graphical.target
aktiv?Antworten:
Trotz des Namens des Ziels läuft auf Ubuntu Server 16.04 nichts Grafisches. Mit diesem Befehl können Sie Folgendes überprüfen und mit Ihrem Desktop vergleichen:
Auf meinem Ubuntu 16.04-Server sehe ich, dass die Ziele von "display-manager.service" abhängen, aber kein Display-Manager installiert ist oder ausgeführt wird.
Ich gehe davon aus, dass Ubuntu-Server auf diese Art und Weise auf Konsistenz eingestellt sind, obwohl ich der Meinung bin, dass dies verwirrend ist.
quelle
Aus dem Redhat-Handbuch :
Das Festlegen ist also nicht falsch, da der Display-Manager nicht aktiviert wird, wenn der Dienst, der den Display-Dienst verarbeitet, nicht festgelegt ist.
Für einen Server können Sie ihn festlegen
multi-user.target
, er wird jedoch nicht benötigt. Sieht so aus, als ob du auf Runlevel 4 landest und auf Runlevel 5, wenn du es nicht tust.quelle
Detaillierteres Untersuchen der ersten Ebene der Baumabhängigkeit des Ziels
graphical.target
:ein Vergleich mit der ersten Ebene der
multi-user.target
:Ich stelle fest , dass , wenn wir die deaktivierten Ziele im entfernen
graphical.target
Baum (display-manager.service
,systemd-update-utmp-runlevel.service
,ureadahead.service
), die fast alle der verbleibenden:apache2.service
apport.service
grub-common.service
grub-common.service
irqbalance.service
mdadm.service
ondemand.service
sysstat.service
sind bereits in der ersten Ebene des Abhängigkeitsbaums der enthalten
multi-user.target
.Allerdings sollten wir noch einmal nachfragen, denn die
graphical.target
von abhängtmulti-user.target
, gibt es keine Notwendigkeit für all diese Sachen. Es hört sich schon komisch an.Aber nach dieser Reduzierung bleibt es eine Leistung, die
accounts-daemon.service
, wie Rinzwind in seinem Kommentar hervorhob .Wir können also davon ausgehen, dass die
graphical.target
zum Laden der benötigt wirdaccounts-daemon.service
.In diesem Fall ist es jedoch wieder seltsam, da es meiner Meinung nach sinnvoller wäre, ein spezielles Ziel für diesen Zweck zu erstellen, vielleicht so etwas wie
accounts.target
oder einen korrekten Begriff, um es zu beschreiben. Wie auch immer, wahrscheinlich hatten Canonical-Entwickler ihre Gründe, solche Überlegungen anzustellen.Aber ich bin gespannt auf die Gründe.
quelle