Почему Сервер Ubuntu имеет graphical.target как значение по умолчанию systemd цель?

Я был пользователем Ubuntu некоторое время, и на работе у нас есть многие Ubuntu серверы VM, весь из который выполненный Ubuntu 14.04 LTS развернуть наши веб-приложения, базы данных и другие инструменты.

Я в настоящее время учусь Ubuntu 16.04 LTS, рабочий стол и сервер, чтобы смочь обновить наши рабочие серверы в ближайшем будущем, не вызывая проблемы.

Начиная с Ubuntu 15.04, init и upstart были заменены Systemd, таким образом, я изучаю Systemd также.

Я заметил, что мой компьютер разработчика рабочий Настольный выпуск Ubuntu 16.04 имеет graphical.target как значение по умолчанию systemd цель, которая логична.

Но затем я заметил, что сервер тестирования рабочий выпуск Сервера Ubuntu 16.04 также использует graphical.target как значение по умолчанию systemd цель.

$ systemctl get-default
graphical.target

Таким образом, я смущен. Сервер не имеет никакого графического слоя, поэтому как получается, что цель по умолчанию graphical.target?

Редактирование № 0

Как Rinzwind, предложенный в комментариях, я посмотрел на цель, чтобы видеть, активно ли это или нет...

и ответ - ДА:

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.service часть дерева зависимостей graphical.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-Gnome с lightdm замена менеджера окон по умолчанию:

me@desktop16.04:~ $ systemctl list-dependencies graphical.target | grep lightdm
● ├─lightdm.service
19
задан 14 October 2016 в 02:38

3 ответа

Осмотр больше в деталях первый уровень древовидной зависимости цели 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.service, systemd-update-utmp-runlevel.service, ureadahead.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.service, как Rinzwind, на который указывают в его комментарии.

Таким образом, мы можем предположить что graphical.target необходим для загрузки accounts-daemon.service.

Однако в этом случае его снова странный, потому что я утончаюсь, имело бы больше смысла создавать специализированную цель с этой целью, возможно, что-то как accounts.target или любой правильный термин для описания этого. Так или иначе вероятно, у Канонических разработчиков были свои причины сделать, думает как этот.

Но я - пребывание, любопытное знать его причины.

1
ответ дан 23 November 2019 в 02:02

Несмотря на название цели, нет ничего графической работы Сервера Ubuntu 16.04. Вы можете эта команда, чтобы проверить и сравнить его с Вашим рабочим столом, если Вам нравится:

systemctl list-dependencies graphical.target 

На моем сервере Ubuntu 16.04, я вижу, что цели зависят от "дисплея-manager.service", но никакой менеджер по оформлению не установлен или выполнение.

я ожидаю, что серверы Ubuntu установлены этот путь к некоторой непротиворечивости, хотя я соглашаюсь, что это сбивает с толку.

9
ответ дан 23 November 2019 в 02:02

От руководство Redhat:

, Например, graphical.target единица, которая используется для запуска графической сессии, запускает системные службы, такие как менеджер по оформлению GNOME (gdm.service) или Сервис Учетных записей (учетные-записи-daemon.service) и также активирует multi-user.target единицу. Точно так же multi-user.target единица запускает другие существенные системные службы, такие как NetworkManager (NetworkManager.service) или D-шина (dbus.service) и активирует другую целевую единицу, названную basic.target.

, Таким образом, при нем не неправильно быть установленным, так как это не активирует менеджера по оформлению, когда сервис, который обрабатывает сервис дисплея, не установлен.

Для сервера можно установить его на multi-user.target, но это не нужно. Похож на Вас, заканчиваются на runlevel 4, если Вы делаете и runlevel 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
ответ дан 23 November 2019 в 02:02

Другие вопросы по тегам:

Похожие вопросы: