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

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

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

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

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

ΠžΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ сформированы Π½ΠΎΠ²Ρ‹Π΅ вСрсии ΡΠΎΠΏΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², Π΄ΠΎΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΡ… s6-rc:

  • s6 2.13.2.0 β€” ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ для отслСТивания Ρ€Π°Π±ΠΎΡ‚Ρ‹ процСссов ΠΈ управлСния процСссами (Π°Π½Π°Π»ΠΎΠ³ daemontools ΠΈ runit). ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ Ρ‚Π°ΠΊΠΈΠ΅ возмоТности ΠΊΠ°ΠΊ пСрСзапуск процСссов послС ΠΈΡ… Π°Π²Π°Ρ€ΠΈΠΉΠ½ΠΎΠ³ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ, запуск ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° (активация сСрвиса) ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠΊ сСтСвому ΠΏΠΎΡ€Ρ‚Ρƒ, ΠΆΡƒΡ€Π½Π°Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ событий (Π·Π°ΠΌΠ΅Π½Π° syslogd) ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ΅ прСдоставлСниС Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ (Π°Π½Π°Π»ΠΎΠ³ sudo).
  • s6-linux-init 1.1.3.0 β€” рСализация init-процСсса для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм Π½Π° Π±Π°Π·Π΅ ядра Linux, примСняСмого для создания систСм ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… для управлСния сСрвисами ΠΈ скриптами ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ s6 ΠΈ s6-rc.
  • s6-networking 2.7.1.0 β€” Π½Π°Π±ΠΎΡ€ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ для создания сСтСвых сСрвисов, ΠΏΠΎΡ…ΠΎΠΆΠΈΠΉ Π½Π° ucspi.
  • s6-frontend β€” обвязка для воссоздания Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ daemontools ΠΈ runit ΠΏΠΎΠ²Π΅Ρ€Ρ… s6.
  • s6-portable-utils 2.3.1.0 β€” Π½Π°Π±ΠΎΡ€ Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Ρ… Unix-ΡƒΡ‚ΠΈΠ»ΠΈΡ‚, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ cut, chmod, ls, sort ΠΈ grep, ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… для потрСблСния ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… рСсурсов ΠΈ поставляСмых ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ ISC.
  • s6-linux-utils 2.6.3.0 β€” Π½Π°Π±ΠΎΡ€ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚, привязанных ΠΊ Linux, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ chroot, freeramdisk, logwatch, mount ΠΈ swapon.
  • mdevd 0.1.7.0 β€” ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ событий (Π°Π½Π°Π»ΠΎΠ³ udevd), ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ горячСго ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ устройств. По ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ mdevd совмСстим с mdev ΠΈΠ· состава Busybox.
  • bcnm 0.0.2.0 β€” сСтСвой ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€ с возмоТностями для настройки Wi-Fi Π½Π° сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°.
  • execline 2.9.7.0 β€” язык написания сцСнариСв.
  • skalibs 2.14.4.0 β€” Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для создания бСзопасных систСмных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° языкС Π‘ΠΈ.
  • s6-dns 2.4.1.0 β€” Π½Π°Π±ΠΎΡ€ клиСнтских Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚, Π·Π°ΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Π΅ DNS-ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ ΠΈΠ· BIND ΠΈ djbdns.
  • dnsfunnel 0.0.3.0 β€” пСрСнаправляСт Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ DNS-запросы Π½Π° внСшний сСрвСр (DNS forwarder).
  • shibari 0.0.2.0 β€” простой DNS-сСрвСр.
  • tipidee 0.0.6.0 β€” HTTP-сСрвСр с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ HTTP/1.1.

Π’ Π½ΠΎΠ²Ρ‹Ρ… вСрсиях Π²ΠΎ всС ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° pkg-config. Π’ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ skalibs Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π°, врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚ΠΎΠΌ. Π’ mdevd Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° опция Β«-IΒ» для задания ΠΈΠΌΠ΅Π½ΠΈ Π³Ρ€ΡƒΠΏΠΏΡ‹ netlink для ΠΏΡ€ΠΈΡ‘ΠΌΠ° запросов, Ρ€Π°Π·ΠΌΠ΅Ρ€ Π±ΡƒΡ„Π΅Ρ€Π° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ Π΄ΠΎ 1 ΠœΠ‘. Π’ tipideed обСспСчСна Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²ΠΎΠΉ трансляции Π²Ρ‹Π²ΠΎΠ΄Π° CGI-скриптов, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² PUT, DELETE ΠΈ PATCH, Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° autochunk для chunked-кодирования ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ….

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

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ