Выпуск сСрвисного ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π° s6-rc 0.5.3.0 ΠΈ систСмы ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ s6-linux-init 1.0.7

ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ выпуск сСрвисного ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π° s6-rc 0.5.3.0, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠ³ΠΎ для управлСния запуском скриптов ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ сСрвисов с ΡƒΡ‡Ρ‘Ρ‚ΠΎΠΌ зависимостСй. Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ s6-rc ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ ΠΊΠ°ΠΊ Π² систСмах ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, Ρ‚Π°ΠΊ ΠΈ для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ запуска ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Ρ… сСрвисов Π² привязкС ΠΊ событиям, ΠΎΡ‚Ρ€Π°ΠΆΠ°ΡŽΡ‰ΠΈΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ состояния систСмы. ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΠ΅Ρ‚ΡΡ ΠΏΠΎΠ»Π½ΠΎΠ΅ отслСТиваниС Π΄Π΅Ρ€Π΅Π²Π° зависимостСй ΠΈ автоматичСский запуск ΠΈΠ»ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ сСрвисов для достиТСния ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ состояния. Код написан Π½Π° языкС Π‘ΠΈ ΠΈ распространяСтся ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ ISC.

БСрвисный ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ s6-rc, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ Π°Π½Π°Π»ΠΎΠ³ sysv-rc ΠΈΠ»ΠΈ OpenRC, Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π½Π°Π±ΠΎΡ€ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ для запуска ΠΈ остановки Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… процСссов (Π΄Π΅ΠΌΠΎΠ½ΠΎΠ²) ΠΈΠ»ΠΈ сразу Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅ΠΌΡ‹Ρ… скриптов ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. Π’ процСссС Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ зависимости ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ, обСспСчиваСтся ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹ΠΉ запуск Π½Π΅ ΠΏΠ΅Ρ€Π΅ΡΠ΅ΠΊΠ°ΡŽΡ‰ΠΈΡ…ΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ собой скриптов ΠΈ сСрвисов, ΠΈ гарантируСтся ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰Π°ΡΡΡ ΠΏΡ€ΠΈ Ρ€Π°Π·Π½Ρ‹Ρ… запусках ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ выполнСния скриптов. ВсС измСнСния состояния ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ с ΡƒΡ‡Ρ‘Ρ‚ΠΎΠΌ зависимостСй, слСдя Π·Π° Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ зависимости Π½Π΅ Π½Π°Ρ€ΡƒΡˆΠ°Π»ΠΈΡΡŒ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ запускС ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Ρ‚ΠΎ сСрвиса Π±ΡƒΠ΄ΡƒΡ‚ автоматичСски Π·Π°ΠΏΡƒΡ‰Π΅Π½Ρ‹ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρ‹ зависимости, Π° ΠΏΡ€ΠΈ остановкС — остановлСны ΠΈ зависимыС сСрвисы).

ВмСсто ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ запуска (runlevel) Π² s6-rc прСдлагаСтся Π±ΠΎΠ»Π΅Π΅ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Π°Ρ концСпция Π½Π°Π±ΠΎΡ€ΠΎΠ² (bundles), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ сСрвисы ΠΏΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΌ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠ°ΠΌ ΠΈ Ρ€Π΅ΡˆΠ°Π΅ΠΌΡ‹ΠΌ Π·Π°Π΄Π°Ρ‡Π°ΠΌ. Для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ эффСктивности Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ скомпилированная Π±Π°Π·Π° зависимостСй, создаваСмая ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ΠΎΠΉ s6-rc-compile Π½Π° основС содСрТимого ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ для запуска/остановки сСрвисов. Для Ρ€Π°Π·Π±ΠΎΡ€Π° ΠΈ манипуляций с Π‘Π” ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‚ΡΡ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ s6-rc-db ΠΈ s6-rc-update. БистСма ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ скрипты ΠΈΠ½ΠΈΡ†Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, совмСстимыС с sysv-init, ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ зависимостях ΠΈΠ· sysv-rc ΠΈΠ»ΠΈ OpenRC.

Из достоинств s6-rc называСтся компактная рСализация, Π½Π΅ содСрТащая Π½ΠΈΡ‡Π΅Π³ΠΎ лишнСго, ΠΊΡ€ΠΎΠΌΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ прямых Π·Π°Π΄Π°Ρ‡, ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±Π»ΡΡŽΡ‰Π°Ρ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ рСсурсов. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… сСрвисных ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ΠΎΠ² s6-rc ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΡƒΠΏΡ€Π΅ΠΆΠ΄Π°ΡŽΡ‰Π΅Π΅ (Π² offline-Ρ€Π΅ΠΆΠΈΠΌΠ΅) построСниС Π³Ρ€Π°Ρ„Π° зависимостСй для ΠΈΠΌΠ΅ΡŽΡ‰Π΅Π³ΠΎΡΡ Π½Π°Π±ΠΎΡ€Π° сСрвисов, Ρ‡Ρ‚ΠΎ позволяСт Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ рСсурсоёмкий Π°Π½Π°Π»ΠΈΠ· зависимостСй ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ, Π° Π½Π΅ Π²ΠΎ врСмя Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈΠ»ΠΈ измСнСния состояния. ΠŸΡ€ΠΈ этом систСма Π½Π΅ являСтся ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½ΠΎΠΉ ΠΈ Ρ€Π°Π·Π±ΠΈΡ‚Π° Π½Π° ΡΠ΅Ρ€ΠΈΡŽ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΈ замСняСмых ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π² соотвСтствии с философиСй Unix Ρ€Π΅ΡˆΠ°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ.

Π’ сочСтании с ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°ΠΌΠΈ s6, ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΌΠΈ Ρ€Π°Π±ΠΎΡ‚Ρƒ процСссов (Π°Π½Π°Π»ΠΎΠ³ daemontools ΠΈ runit), инструмСнтарий позволяСт ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΡ…ΡΡ сСрвисов, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, пСрСзапуская ΠΈΡ… Π² случаС Π°Π²Π°Ρ€ΠΈΠΉΠ½Ρ‹Ρ… Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΉ, ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ запуск ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ Π² воспроизводимой Ρ„ΠΎΡ€ΠΌΠ΅, ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰Π΅ΠΉΡΡ ΠΏΡ€ΠΈ Ρ€Π°Π·Π½Ρ‹Ρ… запусках. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ Π² Ρ‚ΠΎΠΌ числС Ρ‚Π°ΠΊΠΈΠ΅ возмоТности ΠΊΠ°ΠΊ активация сСрвиса ΠΏΡ€ΠΈ доступС ΠΊ сокСту (запуск ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠΊ сСтСвому ΠΏΠΎΡ€Ρ‚Ρƒ), ΠΆΡƒΡ€Π½Π°Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ событий процСсса (Π·Π°ΠΌΠ΅Π½Π° syslogd) ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ΅ прСдоставлСниС Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ (Π°Π½Π°Π»ΠΎΠ³ sudo).

ΠžΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ доступСн выпуск ΠΏΠ°ΠΊΠ΅Ρ‚Π° s6-linux-init 1.0.7.0, ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‰Π΅Π³ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ init-процСсса для построСния Π³ΠΎΡ‚ΠΎΠ²Ρ‹Ρ… систСм ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм Π½Π° Π±Π°Π·Π΅ ядра Linux, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… для управлСния сСрвисами ΠΈ скриптами ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ s6 ΠΈ s6-rc. ΠŸΡ€ΠΈ этом s6 ΠΈ s6-rc Π½Π΅ привязаны ΠΊ s6-linux-init ΠΈ ΠΏΡ€ΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ с Π»ΡŽΠ±Ρ‹ΠΌΠΈ систСмами ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ:

  • s6-networking — Π½Π°Π±ΠΎΡ€ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ для создания сСтСвых сСрвисов, ΠΏΠΎΡ…ΠΎΠΆΠΈΠΉ Π½Π° ucspi.
  • s6-frontend — обвязка для воссоздания Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ daemontools ΠΈ runit ΠΏΠΎΠ²Π΅Ρ€Ρ… s6.
  • s6-portable-utils — Π½Π°Π±ΠΎΡ€ Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Ρ… Unix-ΡƒΡ‚ΠΈΠ»ΠΈΡ‚, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ cut, chmod, ls, sort ΠΈ grep, ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… для потрСблСния ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… рСсурсов ΠΈ поставляСмых ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ ISC.
  • s6-linux-utils — Π½Π°Π±ΠΎΡ€ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚, привязанных ΠΊ Linux, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ chroot, freeramdisk, logwatch, mount ΠΈ swapon.
  • s6-dns — Π½Π°Π±ΠΎΡ€ клиСнтских Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚, Π·Π°ΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Π΅ DNS-ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ ΠΈΠ· BIND ΠΈ djbdns.

Π’ Π½ΠΎΠ²ΠΎΠΉ вСрсии s6-rc Π² ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π΅ s6-rc-compile Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΎ зависимостях ΠΈ Π½Π°Π±ΠΎΡ€Π°Ρ… сСрвисов ΠΈΠ· ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², вмСсто Ρ„Π°ΠΉΠ»ΠΎΠ². ИспользованиС ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ сСрвисов Π² Π‘Π” с ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΎ зависимостях ΠΏΡ€ΠΈ установкС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Ρ‡Π΅Ρ€Π΅Π· ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹ΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ позволяСт ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ Π±Π΅Π· внСсСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Ρ„Π°ΠΉΠ»Ρ‹. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° старого Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π½Π° основС Ρ„Π°ΠΉΠ»ΠΎΠ² сохранСна для обСспСчСния совмСстимости. Π’ Π½ΠΎΠ²ΠΎΠΉ вСрсии s6-linux-init Π² ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρƒ s6-linux-init-maker Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° опция «-S» для синхронизации Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°Ρ….

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