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

Опубликован сервисный менеджер GNU Shepherd 0.9.2 (бывший dmd), который развивается разработчиками дистрибутива GNU Guix System в качестве альтернативы системе инициализации SysV-init, поддерживающей зависимости. Управляющий демон и утилиты Shepherd написаны на языке Guile (одна из реализаций языка Scheme), который также используется для определения настроек и параметров запуска сервисов. Shepherd уже применяется в дистрибутиве GuixSD GNU/Linux и нацелен также на использование в GNU/Hurd, но может работать в любой POSIX-совместимой ОС, для которой доступен язык 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.

Trong số những thay đổi:

  • Используемые в Shepherd файловые дескрипторы теперь помечаются флагом O_CLOEXEC (close-on-exec), а не закрываются сразу при выполнении «exec-command», что позволяет передавать дескрипторы сервисам, запущенным не напрямую, а при помощи «exec-command».
  • Клиентские соединения теперь обрабатываются в неблокирующем режиме, что позволяет исключить зависание shepherd при отправке неполной команды.
  • Обеспечено создание каталога для лог-файлов, определённых в настройке «log-file», в случае его отсутствия.

Nguồn: opennet.ru

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