๋ง์ง๋ง ์ค์ํ ๋ฆด๋ฆฌ์ค๊ฐ ํ์ฑ๋ ์ง 0.9๋ ํ ์๋น์ค ๊ด๋ฆฌ์ GNU Shepherd XNUMX(์ด์ ์ dmd)๊ฐ ๊ฒ์๋์์ต๋๋ค. ์ด๋ GNU Guix ์์คํ ๋ฐฐํฌํ ๊ฐ๋ฐ์๊ฐ ์ข ์์ฑ์ ์ง์ํ๋ SysV-init ์ด๊ธฐํ ์์คํ ์ ๋์์ผ๋ก ๊ฐ๋ฐ ์ค์ธ ๊ฒ์ ๋๋ค. . Shepherd ์ ์ด ๋ฐ๋ชฌ๊ณผ ์ ํธ๋ฆฌํฐ๋ Guile ์ธ์ด(Scheme ์ธ์ด ๊ตฌํ ์ค ํ๋)๋ก ์์ฑ๋์์ผ๋ฉฐ ์๋น์ค ์์์ ์ํ ์ค์ ๋ฐ ๋งค๊ฐ๋ณ์๋ฅผ ์ ์ํ๋ ๋ฐ์๋ ์ฌ์ฉ๋ฉ๋๋ค. Shepherd๋ ์ด๋ฏธ GuixSD GNU/Linux ๋ฐฐํฌํ์์ ์ฌ์ฉ๋๊ณ ์์ผ๋ฉฐ GNU/Hurd์์๋ ์ฌ์ฉํ๊ธฐ ์ํ ๊ฒ์ด์ง๋ง Guile ์ธ์ด๋ฅผ ์ฌ์ฉํ ์ ์๋ ๋ชจ๋ POSIX ํธํ OS์์ ์คํํ ์ ์์ต๋๋ค.
Shepherd๋ ์๋น์ค ๊ฐ์ ๊ด๊ณ๋ฅผ ๊ณ ๋ คํ์ฌ ์๋น์ค๋ฅผ ์์ํ๊ณ ์ค์งํ๋ ์์ ์ ์ํํ๋ฉฐ, ์ ํํ ์๋น์ค๊ฐ ์์กดํ๋ ์๋น์ค๋ฅผ ๋์ ์ผ๋ก ์๋ณํ๊ณ ์์ํฉ๋๋ค. Shepherd๋ ๋ํ ์๋น์ค ๊ฐ์ ์ถฉ๋์ ๊ฐ์งํ๊ณ ๋์์ ์คํ๋๋ ๊ฒ์ ๋ฐฉ์งํ๋ ๊ธฐ๋ฅ๋ ์ง์ํฉ๋๋ค. ํ๋ก์ ํธ๋ ๊ธฐ๋ณธ ์ด๊ธฐํ ์์คํ (PID 1๋ก ์ด๊ธฐํ)์ผ๋ก ์ฌ์ฉํ ์๋ ์๊ณ ๊ถํ์ด ์๋ ์คํ์ ํตํด ๊ฐ๋ณ ์ฌ์ฉ์์ ๋ฐฑ๊ทธ๋ผ์ด๋ ํ๋ก์ธ์ค(์: tor, privoxy, mcron ๋ฑ ์คํ)๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํ ๋ณ๋์ ํ์์ผ๋ก ์ฌ์ฉํ ์๋ ์์ต๋๋ค. ์ด ์ฌ์ฉ์ ์ค.
์ฃผ์ ํ์ :
- ์์ ์๋น์ค(์ผ์์ ) ๊ฐ๋ ์ด ๊ตฌํ๋์ด ํ๋ก์ธ์ค ์ข ๋ฃ ๋๋ "stop" ๋ฉ์๋ ํธ์ถ๋ก ์ธํด ์๋ฃ ํ ์๋์ผ๋ก ๋นํ์ฑํ๋ฉ๋๋ค. ์ด๋ ์ข ๋ฃ ํ ๋ค์ ์์ํ ์ ์๋ ํฉ์ฑ ์๋น์ค์ ํ์ํ ์ ์์ต๋๋ค.
- inetd์ ์ ์ฌํ ์๋น์ค๋ฅผ ์์ฑํ๊ธฐ ์ํด "make-inetd-constructor" ์ ์ฐจ๊ฐ ์ถ๊ฐ๋์์ต๋๋ค.
- ๋คํธ์ํฌ ํ๋ ์ค์ (systemd ์์ผ ํ์ฑํ ์คํ์ผ๋ก) ํ์ฑํ๋๋ ์๋น์ค๋ฅผ ์์ฑํ๊ธฐ ์ํด "make-systemd-constructor" ํ๋ก์์ ๊ฐ ์ถ๊ฐ๋์์ต๋๋ค.
- ๋ฐฑ๊ทธ๋ผ์ด๋์์ ์๋น์ค๋ฅผ ์์ํ๋ ์ ์ฐจ("๋ฐฑ๊ทธ๋ผ์ด๋์์ ์์")๊ฐ ์ถ๊ฐ๋์์ต๋๋ค.
- "make-forkexec-constructor" ๋ฃจํด์ ":supplementary-groups", "#:create-session" ๋ฐ "#:resource-limits" ๋งค๊ฐ๋ณ์๋ฅผ ์ถ๊ฐํ์ต๋๋ค.
- PID ํ์ผ์ ๊ธฐ๋ค๋ฆฌ๋ ๋์ ์ฐจ๋จํ์ง ์๊ณ ์์ ์ ํ์ฑํํ์ต๋๋ค.
- "#:log-file" ๋งค๊ฐ๋ณ์๊ฐ ์๋ ์๋น์ค์ ๊ฒฝ์ฐ syslog์ ์ถ๋ ฅ์ด ์ ๊ณต๋๊ณ , #:log-file ๋งค๊ฐ๋ณ์๊ฐ ์๋ ์๋น์ค์ ๊ฒฝ์ฐ ๋ นํ ์๊ฐ์ ๋ํ๋ด๋ ๋ณ๋์ ํ์ผ์ ๋ก๊ทธ๊ฐ ๊ธฐ๋ก๋ฉ๋๋ค. ๊ถํ์ด ์๋ ์ ฐํผ๋ ํ๋ก์ธ์ค์ ๋ก๊ทธ๋ $XDG_DATA_DIR ๋๋ ํฐ๋ฆฌ์ ์ ์ฅ๋ฉ๋๋ค.
- Guile 2.0์ ์ฌ์ฉํ ๋น๋ ์ง์์ด ์ค๋จ๋์์ต๋๋ค. Guile ๋ฒ์ 3.0.5~3.0.7 ์ฌ์ฉ ์ ๋ฐ์ํ๋ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์์ต๋๋ค.
- ์ด์ ์๋ํ๋ ค๋ฉด Fibers ๋ผ์ด๋ธ๋ฌ๋ฆฌ 1.1.0 ์ด์์ด ํ์ํฉ๋๋ค.
์ถ์ฒ : opennet.ru