ИздаванС Π½Π° систСмата Π·Π° стартиранС Π½Π° GNU Shepherd 0.8

На Ρ€Π°Π·ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡŠΡ€ услуги GNU Shepherd 0.8 (ex dmd), ΠΊΠΎΠΉΡ‚ΠΎ сС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π° ΠΎΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ Π½Π° дистрибуцията Π½Π° GNU Guix System ΠΊΠ°Ρ‚ΠΎ Π°Π»Ρ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π°, ΡΡŠΠΎΠ±Ρ€Π°Π·Π΅Π½Π° със зависимоститС, Π½Π° систСмата SysV-init. ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π½ΠΈΡΡ‚ Π΄Π΅ΠΌΠΎΠ½ ΠΈ ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ Π½Π° Shepherd са написани Π½Π° Π΅Π·ΠΈΠΊΠ° Guile (Π΅Π΄Π½Π° ΠΎΡ‚ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈΡ‚Π΅ Π½Π° Π΅Π·ΠΈΠΊΠ° Scheme), ΠΊΠΎΠΉΡ‚ΠΎ ΡΡŠΡ‰ΠΎ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° опрСдСлянС Π½Π° настройки ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ Π·Π° стартиранС Π½Π° услуги. Shepherd Π²Π΅Ρ‡Π΅ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π² дистрибуцията Π½Π° GuixSD GNU/Linux ΠΈ ΡΡŠΡ‰ΠΎ Π΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π² GNU/Hurd, Π½ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ Π½Π° всяка ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠ° с POSIX ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π° систСма, Π·Π° която Π΅ Π½Π°Π»ΠΈΡ‡Π΅Π½ Π΅Π·ΠΈΠΊΡŠΡ‚ Guile.

Shepherd ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠ°ΠΊΡ‚ΠΎ ΠΊΠ°Ρ‚ΠΎ основна систСма Π·Π° стартиранС (init с PID 1), Ρ‚Π°ΠΊΠ° ΠΈ Π² ΠΎΡ‚Π΄Π΅Π»Π½Π° Ρ„ΠΎΡ€ΠΌΠ° Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Ρ„ΠΎΠ½ΠΎΠ²ΠΈ процСси Π½Π° ΠΎΡ‚Π΄Π΅Π»Π½ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π·Π° стартиранС Π½Π° tor, privoxy, mcron ΠΈ Π΄Ρ€.) с изпълнСниС с ΠΏΡ€Π°Π²Π°Ρ‚Π° Π½Π° Ρ‚Π΅Π·ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ. Shepherd Π²ΡŠΡ€ΡˆΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° ΠΏΠΎ стартиранС ΠΈ спиранС Π½Π° услуги, ΠΊΠ°Ρ‚ΠΎ Π²Π·Π΅ΠΌΠ° ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄ Π²Ρ€ΡŠΠ·ΠΊΠ°Ρ‚Π° ΠΌΠ΅ΠΆΠ΄Ρƒ услугитС, ΠΊΠ°Ρ‚ΠΎ Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½ΠΎ опрСдСля ΠΈ стартира услугитС, ΠΎΡ‚ ΠΊΠΎΠΈΡ‚ΠΎ зависи ΠΈΠ·Π±Ρ€Π°Π½Π°Ρ‚Π° услуга. Shepherd ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° ΠΎΡ‚ΠΊΡ€ΠΈΠ²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ услуги ΠΈ прСдотвратява тяхното Π΅Π΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ изпълнСниС.

Основни ΠΈΠ½ΠΎΠ²Π°Ρ†ΠΈΠΈ:

  • make-kill-destructor изпълнява ΡƒΠ±ΠΈΠ²Π°Π½Π΅ Π½Π° Π³Ρ€ΡƒΠΏΠ° процСси;
  • Π”ΠΎΠ±Π°Π²Π΅Π½ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€ "default-pid-file-timeout", ΠΊΠΎΠΉΡ‚ΠΎ опрСдСля Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π·Π° ΠΈΠ·Ρ‡Π°ΠΊΠ²Π°Π½Π΅ Π·Π° създаванС Π½Π° PID Ρ„Π°ΠΉΠ»;
  • Ако PID Ρ„Π°ΠΉΠ»ΡŠΡ‚ Π½Π΅ сС появи Π² Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅ Π½Π° Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π·Π° ΠΈΠ·Ρ‡Π°ΠΊΠ²Π°Π½Π΅, цялата Π³Ρ€ΡƒΠΏΠ° процСси сС прСкратява (Ρ€Π΅ΡˆΠ°Π²Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚ оставянС Π½Π° Ρ€Π°Π±ΠΎΡ‚Π½ΠΈ процСси Π±Π΅Π· PID Ρ„Π°ΠΉΠ»);
  • Π”ΠΎΠ±Π°Π²Π΅Π½ Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€ΡŠΡ‚ "#:file-creation-mask" към "make-forkexec-constructor", въвСдСно Π΅ ΡΡŠΠ·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π»ΠΎΠ³ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΈ Π΅ ΠΏΡ€Π΅ΠΌΠ°Ρ…Π½Π°Ρ‚Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π·Π° старата конвСнция Π·Π° ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅;
  • ΠšΠΎΡ€ΠΈΠ³ΠΈΡ€Π°Π½ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ с ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° систСми Π±Π΅Π· prctl, ΠΊΠ°Ρ‚ΠΎ GNU/Hurd;
  • ΠŸΠΎΠΏΡ€Π°Π²Π΅Π½Π° Π΅ Π³Ρ€Π΅ΡˆΠΊΠ°, която ΠΊΠ°Ρ€Π° SIGALRM Π΄Π° сС ΠΈΠ·ΠΏΡ€Π°Ρ‰Π° всяка сСкунда.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€