ΠΡΠ΅Π΄ΡΡΠ°Π²Π΅Π½ Π΅ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈΡΡ ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡΡ 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 c 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
