Tại sao máy chủ Ubuntu có đồ họa.target làm mục tiêu systemd mặc định?


20

Tôi đã là người dùng Ubuntu được một thời gian và tại nơi làm việc, chúng tôi có nhiều máy chủ Ubuntu VM , tất cả đều chạy Ubuntu 14.04 LTSđể triển khai các ứng dụng web, cơ sở dữ liệu và các công cụ khác của chúng tôi.

Tôi hiện đang nghiên cứu Ubuntu 16.04 LTS, máy tính để bàn và máy chủ, để có thể nâng cấp máy chủ sản xuất của chúng tôi trong tương lai gần mà không gây ra sự cố.

Kể từ Ubuntu 15.04 initupstartđã được thay thế bởi Systemdvì vậy tôi cũng đang nghiên cứu Systemd.

Tôi nhận thấy rằng máy tính phát triển của tôi chạy phiên bản Ubuntu 16.04 Desktop có graphical.targetmục tiêu systemd mặc định, là logic.

Nhưng sau đó tôi nhận thấy rằng máy chủ thử nghiệm chạy phiên bản Ubuntu 16.04 Server cũng sử dụng graphical.targetlàm mục tiêu systemd mặc định.

$ systemctl get-default
graphical.target

Vì vậy, tôi bối rối. Máy chủ không có lớp đồ họa nào, vậy mục tiêu mặc định là graphical.targetnhư thế nào?

Chỉnh sửa # 0

Giống như Rinzwind đề xuất trong các bình luận, tôi nhìn vào mục tiêu để xem liệu nó có hoạt động hay không ...

và câu trả lời là CÓ:

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.

Vì vậy, tôi có một chút bối rối.

Chỉnh sửa số 1

Câu trả lời của Mark Stosberg cho thấy thực tế display-manager.servicelà một phần của cây phụ thuộc của graphical.targetmáy chủ 16.04 của chính nó và ông nói thêm rằng không có trình quản lý hiển thị nào được cài đặt hoặc chạy trên máy của nó. Tôi cũng đã xem xét điều đó và thực sự, trên máy chủ của tôi, sự phụ thuộc này là có:

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

...

Và mục tiêu này có một vòng tròn màu đỏ ở bên trái, nơi hầu hết các phụ thuộc khác có một màu xanh lá cây.

Và lần này kết quả là nhất quán:

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

Nhưng đây là một điều kỳ lạ khác: trên phiên bản máy tính để bàn của tôi, đó display-manager.servicekhông phải là sự phụ thuộc của graphical.target:

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

Nhưng tôi thậm chí đã tìm thấy một sự thay thế bởi vì tôi chạy Ubuntu-Gnomebằng cách lightdmthay thế trình quản lý cửa sổ mặc định:

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

Bạn đang thiếu 1 thông tin quan trọng: có graphical.targethoạt động không?
Rinzwind

Cám ơn bạn đã góp ý. Nhưng trên thực tế, vâng, nó hoạt động! Nó có nghĩa là gì ?
Rémi B.

Hmm tìm thấy một cái gì đó có liên quan.
Rinzwind

phần có thể có ý nghĩa: "... hoặc tài khoản-daemon.service" Máy chủ cũng sẽ cần điều này. Khó hiểu mặc dù nói ít nhất.
Rinzwind

Câu trả lời:


10

Mặc dù tên của mục tiêu, không có gì đồ họa chạy trên Ubuntu Server 16.04. Bạn có thể lệnh này để kiểm tra và so sánh nó với máy tính để bàn của bạn nếu bạn muốn:

systemctl list-dependencies graphical.target 

Trên máy chủ Ubuntu 16.04 của tôi, tôi thấy rằng các mục tiêu phụ thuộc vào "display-manager.service", nhưng không có trình quản lý hiển thị nào được cài đặt hoặc chạy.

Tôi hy vọng các máy chủ Ubuntu được thiết lập theo cách này cho một số loại nhất quán, mặc dù tôi đồng ý rằng nó khó hiểu.


Đồng ý về các pary nhầm lẫn. Ai đó có thể nghĩ rằng không thiết lập một de là đủ
Rinzwind

@Rinzwind, tôi không hiểu cụm từ của bạn "không đặt de là đủ" (tiếng Anh không phải là ngôn ngữ chính của tôi)
Rémi B.

Bạn có thể đúng về nhu cầu của sự nhất quán. Là phiên bản máy chủ được xây dựng từ máy tính để bàn thay vì với một cách khác từ debian?
Rémi B.

'de' có nghĩa là môi trường máy tính để bàn. Tôi nhớ một thông báo từ vài năm trước, nơi nó nói Ubuntu bắt đầu sử dụng hệ thống cơ sở1; nhưng tôi không biết họ sử dụng máy chủ để tạo máy tính để bàn hay họ sử dụng máy tính để bàn để tạo máy chủ. "Graphics.target" đặt dịch vụ máy tính để bàn; nó có thể có giá trị "" và sau đó không khởi động DE nhưng khó hiểu là (tôi hy vọng rằng sẽ giữ một giá trị và máy chủ sẽ sử dụng "multi-user.target"
Rinzwind

8

Từ hướng dẫn sử dụng lại :

Ví dụ: đơn vị đồ họa.target, được sử dụng để bắt đầu phiên đồ họa, khởi động các dịch vụ hệ thống như Trình quản lý hiển thị Gnome (gdm.service) hoặc Dịch vụ tài khoản (tài khoản-daemon.service) và cũng kích hoạt nhiều người dùng. đơn vị mục tiêu. Tương tự, đơn vị multi-user.target bắt đầu các dịch vụ hệ thống thiết yếu khác như NetworkManager (NetworkManager.service) hoặc D-Bus (dbus.service) và kích hoạt một đơn vị mục tiêu khác có tên basic.target.

Vì vậy, nó không sai khi đặt nó vì nó không kích hoạt trình quản lý hiển thị khi dịch vụ xử lý dịch vụ hiển thị không được đặt.

Đối với một máy chủ, bạn có thể đặt nó multi-user.targetnhưng không cần thiết. Có vẻ như bạn kết thúc với runlevel 4 nếu bạn làm và runlevel 5 khi bạn không.

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. 

Tôi sẽ đánh giá cao thông tin phản hồi về downvote.
Rinzwind

1

Kiểm tra chi tiết hơn mức độ phụ thuộc cây đầu tiên của mục tiêu 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

so sánh nó với cấp độ đầu tiên của 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

...

Tôi nhận thấy rằng nếu chúng ta loại bỏ mục tiêu tàn tật trong graphical.targetcây ( display-manager.service, systemd-update-utmp-runlevel.service, ureadahead.service), hầu hết những người còn lại:

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

đã được bao gồm trong cấp độ đầu tiên của cây phụ thuộc của multi-user.target.

Mặc dù, chúng ta nên hỏi lại về thực tế này, bởi vì sự graphical.targetphụ thuộc của multi-user.target, không cần tất cả những thứ này. Nghe có vẻ đủ kỳ lạ.

Nhưng sau khi giảm, nó vẫn là một dịch vụ accounts-daemon.service, như Rinzwind đã chỉ ra trong bình luận của mình .

Vì vậy, chúng ta có thể giả định rằng graphical.targetcần thiết để tải accounts-daemon.service.

Tuy nhiên, trong trường hợp đó, điều đó lại trở nên kỳ lạ, bởi vì tôi gầy đi, sẽ có ý nghĩa hơn khi tạo ra một mục tiêu chuyên dụng cho mục đích đó, có lẽ là một cái gì đó giống như accounts.targethoặc bất kỳ thuật ngữ chính xác nào để mô tả nó. Dù sao, có lẽ các nhà phát triển Canonical có lý do của họ để nghĩ như vậy.

Nhưng tôi vẫn tò mò muốn biết lý do của nó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.