Ukukhutshwa kwe-GNU Shepherd 0.9 init system

Бпустя Π΄Π²Π° Π³ΠΎΠ΄Π° с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° формирования ΠΏΡ€ΠΎΡˆΠ»ΠΎΠ³ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ выпуска ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ сСрвисный ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ GNU Shepherd 0.9 (Π±Ρ‹Π²ΡˆΠΈΠΉ dmd), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ развиваСтся Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ дистрибутива GNU Guix System Π² качСствС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ систСмС ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ SysV-init, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰Π΅ΠΉ зависимости. Π£ΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ Π΄Π΅ΠΌΠΎΠ½ ΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ Shepherd написаны Π½Π° языкС Guile (ΠΎΠ΄Π½Π° ΠΈΠ· Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ языка Scheme), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для опрСдСлСния настроСк ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² запуска сСрвисов. Shepherd ΡƒΠΆΠ΅ примСняСтся Π² дистрибутивС GuixSD GNU/Linux ΠΈ Π½Π°Ρ†Π΅Π»Π΅Π½ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π° использованиС Π² GNU/Hurd, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² любой POSIX-совмСстимой ОБ, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ доступСн язык Guile.

Umalusi wenza umsebenzi wokuqalisa nokumisa iinkonzo ngokuqwalasela ubudlelwane phakathi kweenkonzo, ukuchonga ngamandla kunye nokuqalisa iinkonzo apho inkonzo ekhethiweyo ixhomekeke kuyo. I-Shepherd ikwaxhasa ukufumanisa ungquzulwano phakathi kweenkonzo kunye nokuthintela ukuba ziqhube ngaxeshanye. Iprojekthi ingasetyenziselwa zombini njengeyona ndlela iphambili yokuqalisa (init nge-PID 1), kunye nefom eyahlukileyo yokulawula iinkqubo zangasemva zabasebenzisi ngabanye (umzekelo, ukuqhuba i-tor, i-privoxy, i-mcron, njl. njl.) ngokusetyenziswa kwamalungelo. yaba basebenzisi.

Iinguqulelo eziphambili:

  • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° концСпция Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… сСрвисов (transient), автоматичСски ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹Ρ… послС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΠΈΠ·-Π·Π° прСкращСния Ρ€Π°Π±ΠΎΡ‚Ρ‹ процСсса ΠΈΠ»ΠΈ Π²Ρ‹Π·ΠΎΠ²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Β«stopΒ», Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ для синтСзируСмых сСрвисов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡ‰Π΅Π½Ρ‹ послС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹.
  • Для создания inetd-ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… сСрвисов Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Β«make-inetd-constructorΒ».
  • Для создания сСрвисов, Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… ΠΏΡ€ΠΈ сСтСвой активности (Π² стилС systemd socket activation), Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Β«make-systemd-constructorΒ».
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° для запуска сСрвиса Π² Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ β€” Β«start-in-the-backgroundΒ».
  • Π’ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ Β«make-forkexec-constructorΒ» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Β«:supplementary-groupsΒ», Β«#:create-sessionΒ» ΠΈ Β«#:resource-limitsΒ».
  • ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° Π±Π΅Π· Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ Π²ΠΎ врСмя оТидания PID-Ρ„Π°ΠΉΠ»ΠΎΠ².
  • Для сСрвисов Π±Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Β«#:log-fileΒ» обСспСчСн Π²Ρ‹Π²ΠΎΠ΄ Π² syslog, Π° для сСрвисов с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ #:log-fileΒ» β€” запись Π»ΠΎΠ³Π° Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ записСй. Π›ΠΎΠ³ΠΈ ΠΎΡ‚ Π½Π΅ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ процСсса shepherd ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ $XDG_DATA_DIR.
  • ΠŸΡ€Π΅ΠΊΡ€Π°Ρ‰Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° сборки с Guile 2.0. Π Π΅ΡˆΠ΅Π½Ρ‹ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΏΡ€ΠΈ использовании вСрсий Guile 3.0.5-3.0.7.
  • Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ трСбуСтся Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Fibers 1.1.0 ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ новая вСрсия.

umthombo: opennet.ru

Yongeza izimvo