ΡΠ΅ΡΠ²ΠΈΡΠ΅Π½ ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡΡ (), ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΡΠ°Π·Π²ΠΈΠ²Π° ΠΎΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ Π½Π° Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π° GNU Guix System ΠΊΠ°ΡΠΎ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°ΡΠ° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ Π½Π° Π°Π»ΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π°ΡΠ° Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π·Π° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ SysV-init. Π£ΠΏΡΠ°Π²Π»ΡΠ²Π°ΡΠΈΡΡ Π΄Π΅ΠΌΠΎΠ½ ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈΡΠ΅ Π½Π° Shepherd ΡΠ° Π½Π°ΠΏΠΈΡΠ°Π½ΠΈ Π½Π° Π΅Π·ΠΈΠΊΠ° Guile (Π΅Π΄Π½Π° ΠΎΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈΡΠ΅ Π½Π° Π΅Π·ΠΈΠΊΠ° Scheme), ΠΊΠΎΠΉΡΠΎ ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ Π·Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΠ»ΡΠ³ΠΈ. Shepherd Π²Π΅ΡΠ΅ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π² Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π° GuixSD GNU/Linux ΠΈ Π΅ Π½Π°ΡΠΎΡΠ΅Π½ ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΠΊΡΠΌ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π² GNU/Hurd, Π½ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ Π² Π²ΡΡΠΊΠ° ΠΠ‘, ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠ° Ρ POSIX, Π·Π° ΠΊΠΎΡΡΠΎ Π΅ Π½Π°Π»ΠΈΡΠ΅Π½ Π΅Π·ΠΈΠΊΡΡ Guile.
Shepherd ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠ°ΠΊΡΠΎ ΠΊΠ°ΡΠΎ ΠΎΡΠ½ΠΎΠ²Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ (init c PID 1), ΡΠ°ΠΊΠ° ΠΈ Π² ΠΎΡΠ΄Π΅Π»Π΅Π½ Π²ΠΈΠ΄ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΠΎΠ½ΠΎΠ²ΠΈΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΠΈ Π½Π° ΠΎΡΠ΄Π΅Π»Π½ΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° tor, privoxy, mcron ΠΈ Ρ.Π½.) Ρ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Ρ ΠΏΡΠ°Π²Π°ΡΠ° Π½Π° ΡΠ°ΠΌΠΈΡΠ΅ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ. Shepherd ΠΈΠ·Π²ΡΡΡΠ²Π° Π·Π°Π΄Π°ΡΠ°ΡΠ° ΠΏΠΎ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ ΠΈ ΡΠΏΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΠ»ΡΠ³ΠΈΡΠ΅, ΠΊΠ°ΡΠΎ ΠΎΡΡΠΈΡΠ° Π²Π·Π°ΠΈΠΌΠΎΠ²ΡΡΠ·ΠΊΠΈΡΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΡ , Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Ρ ΠΈ ΡΡΠ°ΡΡΠΈΡΠ° ΡΡΠ»ΡΠ³ΠΈΡΠ΅, ΠΎΡ ΠΊΠΎΠΈΡΠΎ Π·Π°Π²ΠΈΡΠΈ ΠΈΠ·Π±ΡΠ°Π½Π°ΡΠ° ΡΡΠ»ΡΠ³Π°. Shepherd ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π΅ΡΠΎ Π½Π° ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠ»ΡΠ³ΠΈΡΠ΅ ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΡΠ²Π° ΡΡΡ Π½ΠΎΡΠΎ Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅.
ΠΡΠ½ΠΎΠ²Π½ΠΈ Π½ΠΎΠ²ΠΎΠ²ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ:
- Π make-kill-destructor Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΎ ΡΠ±ΠΈΠ²Π°Π½Π΅ΡΠΎ Π½Π° Π³ΡΡΠΏΠ° ΠΏΡΠΎΡΠ΅ΡΠΈ;
- ΠΠΎΠ±Π°Π²Π΅Π½ Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡΡΡ Β«default-pid-file-timeoutΒ», ΠΊΠΎΠΉΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Ρ Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π·Π° ΠΈΠ·ΡΠ°ΠΊΠ²Π°Π½Π΅ ΠΏΡΠΈ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° PID ΡΠ°ΠΉΠ»;
- ΠΠΊΠΎ PID ΡΠ°ΠΉΠ»ΡΡ Π½Π΅ ΡΠ΅ Π΅ ΠΏΠΎΡΠ²ΠΈΠ» Π² ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π·Π° ΠΈΠ·ΡΠ°ΠΊΠ²Π°Π½Π΅, ΡΡΠ»Π°ΡΠ° Π³ΡΡΠΏΠ° ΠΏΡΠΎΡΠ΅ΡΠΈ Π±ΠΈΠ²Π° Π·Π°Π²ΡΡΡΠ΅Π½Π° (ΡΠ΅ΡΠ°Π²Π° ΠΎΡΡΠ°Π²ΡΠ½Π΅ΡΠΎ Π½Π° ΡΠ°Π±ΠΎΡΠ΅ΡΠΈ ΠΏΡΠΎΡΠ΅ΡΠΈ Π±Π΅Π· PID ΡΠ°ΠΉΠ»);
- Π Β«make-forkexec-constructorΒ» Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡΡΡ Β«#:file-creation-maskΒ», ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΎ Π΅ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° Π»ΠΎΠ³ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° ΡΡΠ°ΡΠ°ΡΠ° ΠΊΠΎΠ½Π²Π΅Π½ΡΠΈΡ Π·Π° ΠΏΠΎΠ²ΠΈΠΊΠ²Π°Π½ΠΈΡ Π΅ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ΅Π½Π°;
- Π Π΅ΡΠ΅Π½ΠΈ ΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠΈ Π±Π΅Π· prctl, ΠΊΠ°ΡΠΎ GNU/Hurd;
- Π£ΡΡΡΠ°Π½Π΅Π½ Π΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, ΠΊΠΎΠΉΡΠΎ Π²ΠΎΠ΄Π΅ΡΠ΅ Π΄ΠΎ ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ Π½Π° SIGALRM Π²ΡΡΠΊΠ° ΡΠ΅ΠΊΡΠ½Π΄Π°.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
