Phát hành hệ thống GNU Shepherd 0.9 init

Hai năm sau khi hình thành bản phát hành quan trọng cuối cùng, trình quản lý dịch vụ GNU Shepherd 0.9 (trước đây là dmd) đã được xuất bản, bản này đang được các nhà phát triển bản phân phối Hệ thống Guix GNU phát triển như một giải pháp thay thế cho hệ thống khởi tạo SysV-init hỗ trợ các phần phụ thuộc . Trình nền và tiện ích điều khiển Shepherd được viết bằng ngôn ngữ Guile (một trong những triển khai của ngôn ngữ Đề án), ngôn ngữ này cũng được sử dụng để xác định cài đặt và tham số cho việc khởi chạy dịch vụ. Shepherd đã được sử dụng trong bản phân phối GuixSD GNU/Linux và cũng nhằm mục đích sử dụng trong GNU/Hurd, nhưng có thể chạy trên bất kỳ HĐH tương thích POSIX nào có sẵn ngôn ngữ Guile.

Shepherd thực hiện công việc bắt đầu và dừng dịch vụ bằng cách tính đến mối quan hệ giữa các dịch vụ, xác định và khởi động động các dịch vụ mà dịch vụ được chọn phụ thuộc vào. Shepherd cũng hỗ trợ phát hiện xung đột giữa các dịch vụ và ngăn chúng chạy đồng thời. Dự án có thể được sử dụng làm hệ thống khởi tạo chính (init với PID 1) và ở dạng riêng biệt để quản lý các quy trình nền của từng người dùng (ví dụ: để chạy tor, Privoxy, mcron, v.v.) với việc thực thi với các quyền của những người dùng này.

Những đổi mới chính:

  • Khái niệm dịch vụ tạm thời (tạm thời) được triển khai, tự động bị vô hiệu hóa sau khi hoàn thành do chấm dứt quá trình hoặc lệnh gọi phương thức “dừng”, có thể được yêu cầu đối với các dịch vụ tổng hợp không thể khởi động lại sau khi tắt máy.
  • Để tạo các dịch vụ giống inetd, quy trình “make-inetd-constructor” đã được thêm vào.
  • Để tạo các dịch vụ được kích hoạt trong hoạt động mạng (theo kiểu kích hoạt ổ cắm systemd), quy trình “make-systemd-constructor” đã được thêm vào.
  • Đã thêm quy trình để bắt đầu một dịch vụ ở chế độ nền - “bắt đầu trong nền”.
  • Đã thêm các tham số ":supplementary-groups", "#:create-session" và "#:resource-limits" vào quy trình "make-forkexec-constructor".
  • Đã bật hoạt động mà không bị chặn trong khi chờ tệp PID.
  • Đối với các dịch vụ không có tham số “#:log-file”, đầu ra sẽ được cung cấp cho syslog và đối với các dịch vụ có tham số #:log-file, nhật ký được ghi vào một tệp riêng biệt cho biết thời gian ghi. Nhật ký từ quy trình chăn cừu không có đặc quyền được lưu trữ trong thư mục $XDG_DATA_DIR.
  • Hỗ trợ xây dựng với Guile 2.0 đã bị ngừng. Các vấn đề khi sử dụng phiên bản Guile 3.0.5-3.0.7 đã được giải quyết.
  • Hiện cần có thư viện Fibers 1.1.0 hoặc mới hơn để hoạt động.

Nguồn: opennet.ru

Thêm một lời nhận xét