Mục tiêu, dịch vụ và ổ cắm của systemd là gì?


35

Tôi biết rằng tất cả chúng đều là các tệp đơn vị, nhưng tôi không thể hiểu ý nghĩa đặc biệt của chúng. Tôi nghĩ rằng các mục tiêu tương tự như daemon và socket cũng giống như socket (cổng IP +) nhưng cũng có số inode. Bất cứ ai có thể xin vui lòng giải thích chúng bằng những từ đơn giản?


3
Các mantrang systemd là mẫu mực: bạn đã xem man systemd.{service,socket,target}chưa?
jasonwryan

@jasonwryan Thật ra tôi đã xem và không có câu trả lời đầy đủ. Tôi đang nhìn chằm chằm chủ đề này để tôi cũng có thể học. Tôi biết dịch vụ là gì, ổ cắm, nhưng có một khoảng cách khi nói đến mục tiêu. Tôi vẫn đang nghiên cứu và sẽ trả lời câu hỏi nếu nó trở nên đủ rõ ràng với tôi.
LD James

Câu trả lời:


40

Đơn vị dịch vụ:

A unit configuration file whose name ends in .service encodes
information about a process controlled and supervised by systemd.

- systemd.service (5)

Các đơn vị dịch vụ Systemd là các đơn vị thực sự thực thi và theo dõi các chương trình và trình nền, và các phụ thuộc được sử dụng để đảm bảo rằng các dịch vụ được bắt đầu theo đúng thứ tự. Chúng là loại đơn vị được sử dụng phổ biến nhất.

Đơn vị ổ cắm:

A unit configuration file whose name ends in ".socket" encodes
information about an IPC or network socket or a file system FIFO
controlled and supervised by systemd, for socket-based activation.

- systemd.socket (5)

Mặt khác, các đơn vị ổ cắm không thực sự bắt đầu trình nền. Thay vào đó, họ chỉ ngồi đó và lắng nghe một địa chỉ IP và một cổng, hoặc một ổ cắm tên miền UNIX, và khi một cái gì đó kết nối với nó, daemon mà ổ cắm được bắt đầu và kết nối được trao cho nó.

Điều này rất hữu ích để đảm bảo rằng các trình tiện ích lớn chiếm nhiều tài nguyên nhưng hiếm khi được sử dụng sẽ không chạy và chiếm tài nguyên mọi lúc, nhưng thay vào đó chúng chỉ được bắt đầu khi cần.

Đơn vị mục tiêu:

A unit configuration file whose name ends in ".target" encodes
information about a target unit of systemd, which is used for grouping
units and as well-known synchronization points during start-up.

- systemd.target (5)

Mục tiêu được sử dụng để phân nhóm và đặt hàng. Chúng có phần tương đương với các đường băng ở các mục tiêu khác nhau, các dịch vụ, ổ cắm khác nhau và các đơn vị khác được bắt đầu. Không giống như runlevels, chúng ở dạng tự do hơn nhiều và bạn có thể dễ dàng tạo các mục tiêu của riêng mình cho các đơn vị đặt hàng và các mục tiêu có sự phụ thuộc lẫn nhau.

Ví dụ, multi-user.targethầu hết các trình tiện ích được nhóm lại và nó cần basic.targetphải được kích hoạt, điều đó có nghĩa là tất cả các dịch vụ được nhóm theo basic.targetsẽ được bắt đầu trước khi các dịch vụ được nhóm multi-user.target.


11

Các tài liệu cho systemd là tuyệt vời cho một dự án tương đối mới. Để bắt đầu với các mục tiêu , từ man systemd.target:

Các đơn vị mục tiêu không cung cấp bất kỳ chức năng bổ sung nào ngoài chức năng chung do các đơn vị cung cấp. Chúng tồn tại đơn thuần để nhóm các đơn vị thông qua các phụ thuộc (hữu ích như các mục tiêu khởi động) và để thiết lập các tên được tiêu chuẩn hóa cho các điểm đồng bộ hóa được sử dụng trong các phụ thuộc giữa các đơn vị. Trong số những thứ khác, các đơn vị mục tiêu là sự thay thế linh hoạt hơn cho các đường băng SysV trong hệ thống khởi tạo SysV cổ điển.

Các "nhóm đơn vị" này bao gồm một loạt các chức năng khác nhau, từ basic.targetđó chủ yếu bao gồm việc khởi động hệ thống, cho đến việc chuyển từ dbus, gettys, các điểm gắn kết sang trao đổi và hẹn giờ. Bạn có thể xem danh sách đầy đủ với man systemd.special.

tệp dịch vụ là các đơn vị cơ bản để chạy các quy trình được kiểm soát bởi systemd. Một lần nữa, từ man systemd.service:

Tệp cấu hình đơn vị có tên kết thúc bằng .service mã hóa thông tin về một quy trình được kiểm soát và giám sát bởi systemd.

Chúng tạo thành các trình tiện ích có thể được khởi động, dừng, khởi động lại, tải lại.

Cuối cùng, ổ cắm , từ man systemd.socket:

Tệp cấu hình đơn vị có tên kết thúc bằng ".socket" mã hóa thông tin về IPC hoặc ổ cắm mạng hoặc hệ thống tệp do FIFO kiểm soát và giám sát bởi systemd, để kích hoạt dựa trên ổ cắm.

Chúng bao gồm một ổ cắm trong hệ thống tệp hoặc trên Internet, cũng như các bộ xếp hình cổ điển như vận chuyển. Mỗi đơn vị ổ cắm có một đơn vị dịch vụ phù hợp, được bắt đầu nếu kết nối đầu tiên xuất hiện trên ổ cắm hoặc FIFO.

Ngoài các mantrang, rất đáng để đọc loạt bài đăng trên blog của Lennart, systemd dành cho Quản trị viên , cung cấp cái nhìn sâu sắc về kiến ​​trúc và triển khai systemd (hiện có 20 bài đăng trong loạt bài).

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.