Ubuntu Serverのデフォルトのsystemdターゲットとして、graphical.targetがあるのはなぜですか?


20

私はしばらくの間Ubuntuユーザーでしたが、職場では多くのUbuntu VM サーバーがあり、すべてがUbuntu 14.04 LTSWebアプリケーション、データベース、その他のツールをデプロイするために実行されています。

私は現在Ubuntu 16.04 LTS、デスクトップとサーバーを勉強しており、近い将来に問題を引き起こすことなく運用サーバーをアップグレードできるようにしています。

Ubuntuの15.04以降、initおよびupstart置き換えられているSystemdので、私はあまりにもにsystemdを勉強しています。

Ubuntu 16.04 Desktopエディションを実行している私の開発コンピューターにはgraphical.target、デフォルトのsystemdターゲットがあり、これは論理的なものです。

しかし、Ubuntu 16.04 Serverエディションを実行しているテストサーバーgraphical.targetがデフォルトのsystemdターゲットとしても使用していることに気付きました。

$ systemctl get-default
graphical.target

だから私は混乱しています。サーバーにはグラフィカルレイヤーがないため、デフォルトのターゲットはどのようになっていますgraphical.targetか?

編集#0

コメントで提案されたRinzwindのように、ターゲットがアクティブかどうかを確認するためにターゲットを調べました...

応答はYESです。

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.

だから私はもう少し混乱しています。

編集#1

Mark Stosbergの答えdisplay-manager.servicegraphical.target、自身の16.04サーバーの依存関係ツリーの一部であるという事実を指摘しており、ディスプレイマネージャーがマシンにインストールまたは実行されていないことを付け加えています。私もそれを見ましたが、実際、私のサーバーにはこの依存関係があります。

admin@server1604:~$ systemctl list-dependencies graphical.target 
graphical.target
● ├─accounts-daemon.service
● ├─apache2.service
● ├─apport.service
● ├─display-manager.service

...

また、このターゲットには左側に赤い円があり、他の依存関係のほとんどには緑色の依存関係があります。

そして今回は一貫した結果です:

admin@server16.04:~$ systemctl status display-manager.service 
● display-manager.service
   Loaded: not-found (Reason: No such file or directory)
   Active: inactive (dead)

しかし、ここに別の奇妙なことがあります:私のデスクトップ版では、これdisplay-manager.serviceはの依存関係ではありませんgraphical.target

me@desktop16.04:~ $ systemctl list-dependencies graphical.target | grep display
me@desktop16.04:~ $ 

しかし、デフォルトのウィンドウマネージャUbuntu-Gnomelightdm置き換えて実行するため、別の方法も見つけました。

me@desktop16.04:~ $ systemctl list-dependencies graphical.target | grep lightdm
● ├─lightdm.service

1つの重要な情報が欠落しています:graphical.targetアクティブですか?
リンツウィンド

コメントありがとうございます。しかし、実際には、はい、アクティブです!どういう意味ですか ?
レミB.

うーん、何か関連するものが見つかりました。
リンツウィンド

意味のある部分: "... or accounts-daemon.service"サーバーでもこれが必要になると思います。控えめに言っても混乱します。
リンツウィンド

回答:


10

ターゲットの名前にもかかわらず、Ubuntu Server 16.04で実行されるグラフィカルなものはありません。必要に応じて、このコマンドでデスクトップと確認および比較できます。

systemctl list-dependencies graphical.target 

Ubuntu 16.04サーバーでは、ターゲットが「display-manager.service」に依存していることがわかりますが、ディスプレイマネージャーがインストールまたは実行されていません。

混乱を招くことに同意しますが、Ubuntuサーバーは何らかの一貫性のためにこのように設定されると予想しています。


紛らわしいparyに同意しました。おそらく誰かがdeを設定しなくても十分だと思う
-Rinzwind

@Rinzwind、「deを設定しないだけで十分です」というフレーズがわかりません(英語は私の第一言語ではありません)
レミB.

あなたはおそらく一貫性の必要性について正しいでしょう。サーバーエディションは、debianの代替方法ではなく、デスクトップから構築されていますか?
レミB.

「de」はデスクトップ環境を意味します。数年前に、Ubuntuがベースシステム1の使用を開始したという通知を覚えています。しかし、サーバーを使用してデスクトップを作成するのか、デスクトップを使用してサーバーを作成するのかはわかりません。「graphical.target」はデスクトップサービスを設定します。値を ""にして、DEを開始せずに混乱させることがあります(値を保持し、サーバーが "multi-user.target"を使用することを期待しています
-Rinzwind

8

redhatマニュアルから:

たとえば、グラフィカルセッションの開始に使用されるグラフィカルターゲットユニットは、GNOMEディスプレイマネージャー(gdm.service)やアカウントサービス(accounts-daemon.service)などのシステムサービスを開始し、マルチユーザーをアクティブにします。ターゲットユニット。同様に、multi-user.targetユニットは、NetworkManager(NetworkManager.service)やD-Bus(dbus.service)などの他の重要なシステムサービスを開始し、basic.targetという名前の別のターゲットユニットをアクティブにします。

表示サービスを処理するサービスが設定されていない場合、表示マネージャーをアクティブにしないため、設定するのは間違っていません。

サーバーの場合は設定できますが、必須multi-user.targetではありません。実行するとランレベル4になり、実行しないとランレベル5になります。

Runlevel    Target Units    Description
0   runlevel0.target, poweroff.target   Shut down and power off the system.
1   runlevel1.target, rescue.target     Set up a rescue shell.
2   runlevel2.target, multi-user.target     Set up a non-graphical multi-user system.
3   runlevel3.target, multi-user.target     Set up a non-graphical multi-user system.
4   runlevel4.target, multi-user.target     Set up a non-graphical multi-user system.
5   runlevel5.target, graphical.target  Set up a graphical multi-user system.
6   runlevel6.target, reboot.target     Shut down and reboot the system. 

投票権についてのフィードバックをお願いします。
-Rinzwind

1

ターゲットのツリー依存関係の最初のレベルをより詳細に検査しますgraphical.target

admin@server1604:~$ systemctl list-dependencies graphical.target 
graphical.target
● ├─accounts-daemon.service
● ├─apache2.service
● ├─apport.service
● ├─display-manager.service              (disabled)
● ├─grub-common.service
● ├─irqbalance.service
● ├─mdadm.service
● ├─ondemand.service
● ├─sysstat.service
● ├─systemd-update-utmp-runlevel.service (disabled)
● ├─ureadahead.service                   (disabled)
● └─multi-user.target

の最初のレベルとの比較multi-user.target

admin@server16.04:~$ systemctl list-dependencies multi-user.target
multi-user.target
● ├─apache2.service
● ├─apport.service
● ├─atd.service
● ├─cron.service
● ├─dbus.service
● ├─grub-common.service
● ├─irqbalance.service
● ├─lxcfs.service
● ├─lxd-containers.service
● ├─mdadm.service
● ├─networking.service
● ├─ondemand.service
● ├─open-vm-tools.service

...

私は気づくこと我々が無効のターゲットを削除する場合graphical.target(木display-manager.servicesystemd-update-utmp-runlevel.serviceureadahead.service)、ほぼすべての残りの:

  • apache2.service
  • apport.service
  • grub-common.service
  • grub-common.service
  • irqbalance.service
  • mdadm.service
  • ondemand.service
  • そして sysstat.service

の依存関係ツリーの最初のレベルに既に含まれていmulti-user.targetます。

ただし、のgraphical.target依存関係はmulti-user.targetこのすべてのものである必要はないため、この事実について再度質問する必要があります。奇妙に聞こえます。

しかし、この削減後もaccounts-daemon.serviceRinzwindがコメントで指摘したように、1つのサービスのままです。

したがって、をgraphical.targetロードするにはが必要であると想定できますaccounts-daemon.service

しかし、その場合は再び奇妙です。私はその目的のために専用のターゲットを作成するほうが理にかなっているでしょうaccounts.target。とにかく、おそらくCanonicalの開発者には、そのように考える理由がありました。

しかし、その理由を知りたいと思っています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.