web-dev-qa-db-ja.com

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

私はしばらくの間Ubuntuユーザーでしたが、職場では多くのUbuntu VM serversがあり、すべてがUbuntu 14.04 LTSを実行してWebアプリケーション、データベースをデプロイしています、およびその他のツール。

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

Ubuntu 15.04以降、initupstartSystemdに置き換えられているため、Systemdも勉強しています。

Ubuntu 16.04 Desktopエディションを実行している私の開発コンピューターは、デフォルトのsystemdターゲットとしてgraphical.targetを持っていることに気付きました。これは論理的です。

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

$ 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

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

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

...

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

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

[email protected]:~$ systemctl status display-manager.service 
● display-manager.service
   Loaded: not-found (Reason: No such file or directory)
   Active: inactive (dead)

しかし、もう1つ奇妙なことがあります。デスクトップ版では、display-manager.servicegraphical.targetの依存関係ではありません。

[email protected]:~ $ systemctl list-dependencies graphical.target | grep display
[email protected]:~ $ 

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

[email protected]:~ $ systemctl list-dependencies graphical.target | grep lightdm
● ├─lightdm.service
19
Rémi B.

ターゲット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の最初のレベルと比較します:

[email protected]:~$ 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.targetmulti-user.targetに依存しているため、この事実について再度質問する必要がありますが、このすべての必要はありません。奇妙に聞こえます。

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

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

ただし、その場合は奇妙なことになります。その目的のために、おそらくaccounts.targetまたはそれを説明する正しい用語のような専用のターゲットを作成する方が賢明だからです。とにかく、おそらくCanonicalの開発者には、そのように考える理由がありました。

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

1
Rémi B.

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

systemctl list-dependencies graphical.target 

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

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

9
Mark Stosberg

redhat manual から:

たとえば、グラフィカルセッションの開始に使用されるグラフィカルターゲットユニットは、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. 
8
Rinzwind