Я был пользователем 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
?
Как 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.
Таким образом, я немного более смущен.
Ответ 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
Осмотр больше в деталях первый уровень древовидной зависимости цели 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
или любой правильный термин для описания этого. Так или иначе вероятно, у Канонических разработчиков были свои причины сделать, думает как этот.
Но я - пребывание, любопытное знать его причины.
Несмотря на название цели, нет ничего графической работы Сервера Ubuntu 16.04. Вы можете эта команда, чтобы проверить и сравнить его с Вашим рабочим столом, если Вам нравится:
systemctl list-dependencies graphical.target
На моем сервере Ubuntu 16.04, я вижу, что цели зависят от "дисплея-manager.service", но никакой менеджер по оформлению не установлен или выполнение.
я ожидаю, что серверы Ubuntu установлены этот путь к некоторой непротиворечивости, хотя я соглашаюсь, что это сбивает с толку.
От руководство 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.