Ubuntu Server에 기본 시스템 대상으로 graphic.target이있는 이유는 무엇입니까?


20

나는 한동안 우분투 사용자였으며, 직장에는 웹 애플리케이션, 데이터베이스 및 기타 도구를 배포하기 위해 실행되는 많은 우분투 VM 서버가Ubuntu 14.04 LTS 있습니다.

현재 Ubuntu 16.04 LTS가까운 미래에 문제를 일으키지 않고 프로덕션 서버를 업그레이드 할 수 있도록, 데스크톱 및 서버를 연구하고 있습니다.

우분투 15.04 이후, init그리고 upstart에 의해 대체되었습니다 Systemd너무 Systemd을 공부하고, 그래서.

Ubuntu 16.04 Desktop Edition을 실행하는 개발 컴퓨터 graphical.target에 기본 시스템 대상이 논리적 이라는 것을 알았습니다 .

그러나 우분투 16.04 서버 에디션을 실행하는 테스트 서버도 graphical.target기본 시스템 대상으로 사용 됩니다.

$ 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의 답변 은 자체 16.04 서버 display-manager.service의 종속성 트리에 속한다는 사실을 지적 graphical.target하고 컴퓨터에 디스플레이 관리자가 설치되거나 실행되지 않는다고 덧붙입니다. 나도 그것을 보았고, 실제로 내 서버 에서이 종속성이 있습니다.

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

중요한 정보가 누락되었습니다 : graphical.target활성화되어 있습니까?
Rinzwind

귀하의 의견에 감사드립니다. 그러나 실제로, 그것은 활성화되어 있습니다! 무슨 뜻인가요 ?
Rémi B.

흠 관련있는 것을 찾았습니다.
Rinzwind

"... 또는 accounts-daemon.service"서버도 이해할 수있는 부분이 필요합니다. 가장 적게 말하지만 혼란 스럽습니다.
Rinzwind

답변:


10

대상의 이름에도 불구하고 Ubuntu Server 16.04에서 실행되는 그래픽은 없습니다. 원하는 경우이 명령을 사용하여 데스크탑과 확인하고 비교할 수 있습니다.

systemctl list-dependencies graphical.target 

Ubuntu 16.04 서버에서 대상이 "display-manager.service"에 의존하지만 디스플레이 관리자가 설치 또는 실행되고 있지 않습니다.

혼란스러운 데 동의하지만 우분투 서버는 일종의 일관성을 위해이 방법으로 설정 될 것으로 기대합니다.


혼란스러운 패리에 동의했습니다. 누군가는 아마도 de를 설정하지 않으면 충분하다고 생각합니다
Rinzwind

@Rinzwind, 나는 당신의 문구 "드를 설정하지 않는 것만으로는 충분하다"(영어가 내 기본 언어가 아닙니다) 이해하지 않는
레미 B.

당신은 아마도 일관성의 필요성에 대해 맞을 것입니다. 서버 에디션은 데비안과 다른 방법 대신 데스크탑에서 빌드 되었습니까?
Rémi B.

'de'는 데스크탑 환경을 의미합니다. 몇 년 전 우분투가 1 개의 기본 시스템을 사용하기 시작했다는 통지를 기억합니다. 그러나 서버를 사용하여 데스크톱을 만들지 또는 데스크톱을 사용하여 서버를 만들지 여부는 알 수 없습니다. "graphical.target"은 데스크탑 서비스를 설정합니다. ""값을 가질 수 있지만 DE를 시작하지는 않지만 혼동됩니다 (값과 서버가 "multi-user.target"을 사용하도록 기대합니다
Rinzwind

8

로부터 레드햇 설명서 :

예를 들어 그래픽 세션을 시작하는 데 사용되는 graphic.target 장치는 그놈 디스플레이 관리자 (gdm.service) 또는 계정 서비스 (accounts-daemon.service)와 같은 시스템 서비스를 시작하고 다중 사용자를 활성화합니다. 대상 단위. 마찬가지로 multi-user.target 장치는 NetworkManager (NetworkManager.service) 또는 D-Bus (dbus.service)와 같은 다른 필수 시스템 서비스를 시작하고 basic.target이라는 다른 대상 장치를 활성화합니다.

따라서 디스플레이 서비스를 처리하는 서비스가 설정되지 않은 경우 디스플레이 관리자를 활성화하지 않으므로 설정이 잘못되지 않습니다.

서버의 경우 서버를 설정할 수 multi-user.target있지만 필요하지는 않습니다. 그렇지 않으면 런레벨 5를하고 런레벨 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. 

downvote에 대한 의견을 보내 주셔서 감사합니다.
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.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모든 것들이 필요하지 않습니다. 충분히 이상하게 들린다.

그러나이 축소 후에도 Rinzwind가 언급 한accounts-daemon.service 것처럼 하나의 서비스로 남아 있습니다 .

따라서 graphical.target를로드하는 데 필요 하다고 가정 할 수 있습니다 accounts-daemon.service.

그러나이 경우에는 다시 이상하기 때문에 얇기 때문에 해당 목적을 위해 전용 대상을 작성하는 것이 더 합리적 accounts.target입니다. 어쨌든, 정식 개발자는 그렇게 생각해야 할 이유가 있었을 것입니다.

그러나 나는 그 이유를 알고 싶어합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.