ΠΡΠ΅Π΄ΡΡΠ°Π²Π΅Π½ Π΅ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈΡΡ ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡΡ GNU Shepherd 1.0.0 (Π±ΠΈΠ²Ρ dmd), ΠΊΠΎΠΉΡΠΎ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠ° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈΡΠ΅ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈ ΡΡΠ»ΡΠ³ΠΈ. ΠΠ°ΡΠ²ΡΡΠ΄Π²Π°Π½Π΅ΡΠΎ Π½Π° Π½ΠΎΠΌΠ΅Ρ 1.0 ΡΠ»Π΅Π΄ 21 Π³ΠΎΠ΄ΠΈΠ½ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π΅ Π·Π½Π°ΠΊ Π·Π° ΠΏΡΠΈΠ·Π½Π°Π½ΠΈΠ΅ Π½Π° Π³ΠΎΡΠΎΠ²Π½ΠΎΡΡΡΠ° Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈ Π½Π΅Π³ΠΎΠ²ΠΎΡΠΎ ΡΡΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ Ρ ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½ΠΈΡΡΠ° Π·Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ Π½Π° ΡΡΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΈΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠΈ Π·Π° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈ ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡΡΠΈ Π½Π° ΡΡΠ»ΡΠ³ΠΈ.
ΠΡΠΎΠ΅ΠΊΡΡΡ ΡΠ΅ ΡΠ°Π·Π²ΠΈΠ²Π° ΠΎΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ Π½Π° Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΡΡΠ° GNU Guix System ΠΊΠ°ΡΠΎ Π°Π»ΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π° Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π·Π° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ SysV-init, ΠΊΠΎΡΡΠΎ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ. Π£ΠΏΡΠ°Π²Π»ΡΠ²Π°ΡΠΈΡΡ Π΄Π΅ΠΌΠΎΠ½ ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈΡΠ΅ Shepherd ΡΠ° Π½Π°ΠΏΠΈΡΠ°Π½ΠΈ Π½Π° Π΅Π·ΠΈΠΊΠ° Guile (Π΅Π΄Π½Π° ΠΎΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈΡΠ΅ Π½Π° Π΅Π·ΠΈΠΊΠ° Scheme), ΠΊΠΎΠΉΡΠΎ ΡΡΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π΅ Π½Π° Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ Π·Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΠ»ΡΠ³ΠΈ. Shepherd Π²Π΅ΡΠ΅ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π² Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΡΡΠ° GNU Guix System ΠΈ Π΅ Π½Π°ΡΠΎΡΠ΅Π½ ΡΡΡΠΎ ΠΊΡΠΌ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π² GNU/Hurd, Π½ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ Π² ΠΊΠΎΡΡΠΎ ΠΈ Π΄Π° Π΅ ΠΠ‘, ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠ° Ρ POSIX, Π·Π° ΠΊΠΎΡΡΠΎ Π΅ Π½Π°Π»ΠΈΡΠ΅Π½ Π΅Π·ΠΈΠΊΡΡ Guile.
Shepherd ΠΈΠ·Π²ΡΡΡΠ²Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ° ΠΏΠΎ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ ΠΈ ΡΠΏΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ΅ΡΠ²ΠΈΡΠΈΡΠ΅, ΠΊΠ°ΡΠΎ Π²Π·Π΅ΠΌΠ° ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ Π²Π·Π°ΠΈΠΌΠΎΠ²ΡΡΠ·ΠΊΠΈΡΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΡ , Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Ρ ΠΈ ΡΡΠ°ΡΡΠΈΡΠ° ΡΠ΅ΡΠ²ΠΈΡΠΈΡΠ΅, ΠΎΡ ΠΊΠΎΠΈΡΠΎ Π·Π°Π²ΠΈΡΠΈ ΠΈΠ·Π±ΡΠ°Π½ΠΈΡΡ ΡΠ΅ΡΠ²ΠΈΡ. Shepherd ΡΡΡΠΎ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π΅ΡΠΎ Π½Π° ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΅ΡΠ²ΠΈΡΠΈΡΠ΅ ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΡΠ²Π° ΡΡΡ Π½ΠΎΡΠΎ Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅. ΠΡΠΎΠ΅ΠΊΡΡΡ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠ°ΠΊΡΠΎ Π² ΡΠΎΠ»ΡΡΠ° Π½Π° ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΎΠ½Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ° (init Ρ PID 1), ΡΠ°ΠΊΠ° ΠΈ Π² ΠΈΠ·ΠΎΠ»ΠΈΡΠ°Π½Π° ΡΠΎΡΠΌΠ° Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΠΎΠ½ΠΎΠ²ΠΈΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΠΈ Π½Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π·Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° tor, privoxy, mcron ΠΈ Ρ.Π½.) Ρ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Ρ ΠΏΡΠ°Π²Π°ΡΠ° Π½Π° ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΈΡΠ΅ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ.
ΠΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅ Π½ΠΎΠ²ΠΎΠ²ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ Π² GNU Shepherd 1.0.0:
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΡΡΠ»ΡΠ³ΠΈ, ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ½ΠΎ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°ΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ ΠΈΠ»ΠΈ ΠΊΠΎΠ΄ Π½Π° Π΅Π·ΠΈΠΊΠ° Scheme ΠΏΠΎ Π·Π°Π΄Π°Π΄Π΅Π½ Π³ΡΠ°ΡΠΈΠΊ.
- Π Π΅ΠΊΠΈΠΏΠ° Π½Π° Β«herd status SERVICEΒ» Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ ΠΏΠΎΠΊΠ°Π· Π½Π° Π²ΠΈΡΠΎΠΊΠΎΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° ΡΡΠ»ΡΠ³ΠΈΡΠ΅, ΠΊΠ°ΡΠΎ PID, ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΈ Π°Π΄ΡΠ΅ΡΠΈ, Π½Π° ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΏΡΠΈΠ΅ΠΌΠ°Ρ ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ Π·Π°ΡΠ²ΠΊΠΈ, ΠΊΠ°ΠΊΡΠΎ ΠΈ ΡΠ΅Π·ΡΠΌΠ΅ΡΠ° Π½Π° Π½Π°ΡΠΊΠΎΡΠΎ Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ Π² Π»ΠΎΠ³ΠΎΠ²Π΅ΡΠ΅. ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π°, ΡΠ°Π·ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΠ΅Π³Π° ΠΏΠΎΠΊΠ°Π·Π²Π° ΠΏΡΠΈΠ»ΠΎΠΆΠΈΠΌΠΈΡΠ΅ ΠΊΡΠΌ ΡΡΠ»ΡΠ³Π°ΡΠ° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠΈΡΠ° Π·Π° Π½Π°Π»ΠΈΡΠΈΠ΅ΡΠΎ Π½Π° Π·Π°ΠΌΠ΅ΡΡΠ²Π°ΡΠ° ΡΡΠ»ΡΠ³Π°, ΠΊΠΎΡΡΠΎ ΡΠ΅ Π±ΡΠ΄Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½Π° ΡΠ»Π΅Π΄ ΡΠ΅ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ΅ΠΊΡΡΠ°ΡΠ° ΡΡΠ»ΡΠ³Π°.
- ΠΠΎΠΌΠ°Π½Π΄Π°ΡΠ° Β«herd status rootΒ» Π²Π΅ΡΠ΅ Π½Π΅ Π΅ ΡΠΈΠ½ΠΎΠ½ΠΈΠΌ Π½Π° Β«herd statusΒ» ΠΈ ΠΏΠΎΠΊΠ°Π·Π²Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° ΠΊΠΎΡΠ΅Π½ΠΎΠ²ΠΈΡ ΠΏΡΠΎΡΠ΅Ρ shepherd.
- ΠΠ° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° Linux Π΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π΅Π½Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΡΠ΅ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Ρ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° kexec (Β«reboot βkexecΒ») Π·Π° ΡΠΌΡΠ½Π° Π½Π° ΡΠ΄ΡΠΎΡΠΎ Π½Π° Linux Π±Π΅Π· ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎ ΡΠ΅ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅.
- ΠΠΎΠ±Π°Π²Π΅Π½ Π΅ ΡΠ΅ΡΠ²ΠΈΡ log-rotation, ΠΎΡΠ³ΠΎΠ²ΠΎΡΠ΅Π½ Π·Π° ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ½ΠΎ ΡΠΎΡΠ°ΡΠΈΡ Π½Π° Π»ΠΎΠ³ΠΎΠ²Π΅ΡΠ΅ ΠΈ ΠΈΠ·ΡΡΠΈΠ²Π°Π½Π΅ Π½Π° ΠΎΡΡΠ°ΡΠ΅Π»ΠΈ Π»ΠΎΠ³ΠΎΠ²Π΅.
- ΠΠΎΠ±Π°Π²Π΅Π½ Π΅ ΡΠ΅ΡΠ²ΠΈΡ system-log, ΠΊΠΎΠΉΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠ°ΡΠΎ Π·Π°ΠΌΠ΅ΡΡΠΈΡΠ΅Π» Π½Π° ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° syslogd.
- ΠΠΎΠ±Π°Π²Π΅Π½ Π΅ ΡΡΠ»ΡΠ³Π°ΡΠ° timer Π·Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Π² ΡΠΊΠ°Π·Π°Π½ΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π½Π° ΡΡΠΈΠ»ΠΈΡΠ°ΡΠ° Β«atΒ». ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Β«herd schedule timer at 07:00 β mpg123 alarm.mp3Β».
- ΠΠΎΠ±Π°Π²Π΅Π½ Π΅ ΡΡΠ»ΡΠ³Π°ΡΠ° transient Π·Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Π²ΡΠ² ΡΠΎΠ½ΠΎΠ² ΡΠ΅ΠΆΠΈΠΌ, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π½Π° ΡΡΠΈΠ»ΠΈΡΠ°ΡΠ° systemd-run. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Β«herd spawn transient -d $PWD β make -j4Β».
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
