Bir Ubuntu Sunucusunda neden varsayılan systemd hedefi olarak graphical.target var?


20

Bir süredir Ubuntu kullanıcısıyım ve işte , hepsi web uygulamalarımızı, veritabanlarımızı ve diğer araçlarımızı dağıtmak için çalışan birçok Ubuntu VM sunucumuz var Ubuntu 14.04 LTS.

Şu anda Ubuntu 16.04 LTS, masaüstü ve sunucu üzerinde çalışıyorum , yakın gelecekte üretim sunucularımızı sorun çıkarmadan yükseltebiliyorum.

Ubuntu 15.04 beri initve upstartyerini aldı Systemd, bu yüzden ben de Systemd çalışıyorum.

Ubuntu 16.04 Masaüstü sürümünü çalıştıran geliştirme bilgisayarımın graphical.targetvarsayılan sistemd hedefi olduğunu ve bunun mantıklı olduğunu fark ettim .

Ama sonra Ubuntu 16.04 Server sürümünü çalıştıran test sunucusunun da graphical.targetvarsayılan systemd hedefi olarak kullandığını fark ettim .

$ systemctl get-default
graphical.target

Bu yüzden kafam karıştı. Sunucunun grafik katmanı yok, bu yüzden varsayılan hedef nasıl graphical.target?

Düzenleme # 0

Rinzwind'in yorumlarda önerdiği gibi, aktif olup olmadığını görmek için hedefe baktım ...

ve yanıt EVET:

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.

Biraz kafam karıştı.

Düzenleme # 1

Mark Stosberg'in cevabı , kendi 16.04 sunucusunun display-manager.servicebağımlılık ağacının bir parçası olduğu gerçeğini işaret graphical.targetediyor ve makinesinde hiçbir ekran yöneticisinin yüklü veya çalışmadığını ekliyor. Ben de baktım ve gerçekten, sunucumda bu bağımlılık var:

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

...

Ve bu hedefin solunda, diğer bağımlılıkların çoğunun yeşil olduğu kırmızı bir daire var.

Ve bu sefer sonuç tutarlı:

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

Ancak burada başka bir garip şey var: Masaüstü sürümümde, bu display-manager.servicebir bağımlılık değil graphical.target:

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

Ben çalıştırmak çünkü ben bile bir alternatif buldum Ubuntu-Gnomeile lightdmvarsayılan pencere yöneticisi değiştirilmesi:

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

1 önemli bilgi eksik: graphical.targetaktif mi?
Rinzwind

Yorumun için teşekkürler. Ama aslında, evet, aktif! Bu ne demek ?
Rémi B.

Hmm alakalı bir şey buldu.
Rinzwind

mantıklı olabilecek kısmı: "... ya da accounts-daemon.service" Sunucunun buna da ihtiyacı olacak. Az söylemek kafa karıştırıcı olsa.
Rinzwind

Yanıtlar:


10

Hedefin adına rağmen, Ubuntu Server 16.04 üzerinde grafik olarak çalışan hiçbir şey yoktur. İsterseniz bunu kontrol etmek ve masaüstünüzle karşılaştırmak için bu komutu kullanabilirsiniz:

systemctl list-dependencies graphical.target 

Ubuntu 16.04 sunucumda, hedeflerin "display-manager.service" e bağlı olduğunu, ancak hiçbir görüntü yöneticisinin yüklü veya çalışmadığını görüyorum.

Her ne kadar kafa karıştırıcı olduğunu kabul etsem de, Ubuntu sunucularının bir çeşit tutarlılık için bu şekilde ayarlanmasını bekliyorum.


Kafa karıştırıcı pary üzerinde anlaştı. Birisi muhtemelen bir de
kurmanın

@Rinzwind, "bir de ayarı yapmak yeterli değil" ifadesini anlamıyorum (ingilizce benim ana dilim değil)
Rémi B.

Muhtemelen tutarlılık ihtiyacı konusunda haklısınız. Sunucu sürümü debian'dan farklı bir yolla değil masaüstünden mi oluşturuldu?
Rémi B.

'de' masaüstü ortamı anlamına gelir. Birkaç yıl önce Ubuntu'nun 1 temel sistemi kullanmaya başladığını belirten bir uyarı hatırlıyorum; ancak masaüstünü oluşturmak için bir sunucu kullanıp kullanmadığını veya sunucu oluşturmak için bir masaüstü kullanıp kullanmadığını bilmiyorum. "graphical.target" masaüstü hizmetini ayarlar; "" bir değeri olabilir ve daha sonra bir DE başlatmak değil ama kafa karıştırıcı (Ben bir değer ve sunucu "multi-user.target" kullanmak için beklediğiniz
Rinzwind

8

Gönderen redhat kılavuzu :

Örneğin, bir grafik oturumu başlatmak için kullanılan graphical.target birimi, GNOME Display Manager (gdm.service) veya Hesap Hizmeti (accounts-daemon.service) gibi sistem hizmetlerini başlatır ve ayrıca çok kullanıcıyı etkinleştirir. hedef birim. Benzer şekilde, multi-user.target birimi NetworkManager (NetworkManager.service) veya D-Bus (dbus.service) gibi diğer önemli sistem hizmetlerini başlatır ve basic.target adlı başka bir hedef birimi etkinleştirir.

Bu nedenle, ayarlanması yanlış değildir, çünkü ekran hizmetini işleyen hizmet ayarlanmadığında ekran yöneticisini etkinleştirmez.

Bir sunucu için bunu ayarlayabilirsiniz multi-user.targetancak gerekli değildir. Görünüşe göre eğer 4'üncü runlevel oyununu bitiriyorsun, 5'inde ise runlevel oyununu kullanıyorsun.

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. 

Downvote hakkında geri bildirim almaktan memnuniyet duyarım.
Rinzwind

1

Hedefin ağaç bağımlılığının ilk seviyesinin daha ayrıntılı olarak incelenmesi 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

bunu ilk seviyeyle karşılaştırarak 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

...

Ben fark biz engelli hedefleri kaldırırsanız graphical.target(ağacın display-manager.service, systemd-update-utmp-runlevel.service, ureadahead.service), hemen hemen tüm kalan olanlar:

  • apache2.service
  • apport.service
  • grub-common.service
  • grub-common.service
  • irqbalance.service
  • mdadm.service
  • ondemand.service
  • ve sysstat.service

zaten bağımlılık ağacının ilk düzeyine dahil edilmiştir multi-user.target.

Yine de, bu gerçeği tekrar sormalıyız, çünkü buna graphical.targetbağlı olarak, multi-user.targettüm bu şeylere gerek yoktur. Kulađa garip geliyor.

Ancak bu indirimden sonra, bir hizmet olmaya devam ediyor accounts-daemon.service, Rinzwind gibi yorumunda dikkat çekti .

Bu yüzden graphical.targetyüklemek için gerekli olduğunu varsayabiliriz accounts-daemon.service.

Bununla birlikte, bu durumda yine garip, çünkü bu amaç için özel bir hedef, belki de accounts.targetonu tanımlamak için benzer bir şey veya herhangi bir doğru terim yaratmanın daha anlamlı olacağını düşünüyorum. Her neyse, muhtemelen Kanonik geliştiricilerin böyle düşünmek için nedenleri vardı.

Ama nedenlerini bilmek merak ediyorum.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.