์ข ์์ฑ์ ์ง์ํ๋ SysV-init ์ด๊ธฐํ ์์คํ ์ ๋์์ผ๋ก GNU Guix ์์คํ ๋ฐฐํฌํ ๊ฐ๋ฐ์๊ฐ ๊ฐ๋ฐ ์ค์ธ ์๋น์ค ๊ด๋ฆฌ์ GNU Shepherd 0.9.2(์ด์ dmd)๊ฐ ์ถ์๋์์ต๋๋ค. Shepherd ์ ์ด ๋ฐ๋ชฌ๊ณผ ์ ํธ๋ฆฌํฐ๋ Guile ์ธ์ด(Scheme ์ธ์ด ๊ตฌํ ์ค ํ๋)๋ก ์์ฑ๋์์ผ๋ฉฐ ์๋น์ค ์์์ ์ํ ์ค์ ๋ฐ ๋งค๊ฐ๋ณ์๋ฅผ ์ ์ํ๋ ๋ฐ์๋ ์ฌ์ฉ๋ฉ๋๋ค. Shepherd๋ ์ด๋ฏธ GuixSD GNU/Linux ๋ฐฐํฌํ์์ ์ฌ์ฉ๋๊ณ ์์ผ๋ฉฐ GNU/Hurd์์๋ ์ฌ์ฉํ๊ธฐ ์ํ ๊ฒ์ด์ง๋ง Guile ์ธ์ด๋ฅผ ์ฌ์ฉํ ์ ์๋ ๋ชจ๋ POSIX ํธํ OS์์ ์คํํ ์ ์์ต๋๋ค.
Shepherd๋ ์๋น์ค ๊ฐ์ ๊ด๊ณ๋ฅผ ๊ณ ๋ คํ์ฌ ์๋น์ค๋ฅผ ์์ํ๊ณ ์ค์งํ๋ ์์ ์ ์ํํ๋ฉฐ, ์ ํํ ์๋น์ค๊ฐ ์์กดํ๋ ์๋น์ค๋ฅผ ๋์ ์ผ๋ก ์๋ณํ๊ณ ์์ํฉ๋๋ค. Shepherd๋ ๋ํ ์๋น์ค ๊ฐ์ ์ถฉ๋์ ๊ฐ์งํ๊ณ ๋์์ ์คํ๋๋ ๊ฒ์ ๋ฐฉ์งํ๋ ๊ธฐ๋ฅ๋ ์ง์ํฉ๋๋ค. ํ๋ก์ ํธ๋ ๊ธฐ๋ณธ ์ด๊ธฐํ ์์คํ (PID 1๋ก ์ด๊ธฐํ)์ผ๋ก ์ฌ์ฉํ ์๋ ์๊ณ ๊ถํ์ด ์๋ ์คํ์ ํตํด ๊ฐ๋ณ ์ฌ์ฉ์์ ๋ฐฑ๊ทธ๋ผ์ด๋ ํ๋ก์ธ์ค(์: tor, privoxy, mcron ๋ฑ ์คํ)๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํ ๋ณ๋์ ํ์์ผ๋ก ์ฌ์ฉํ ์๋ ์์ต๋๋ค. ์ด ์ฌ์ฉ์ ์ค.
๋ณ๊ฒฝ ์ฌํญ:
- Shepherd์์ ์ฌ์ฉ๋๋ ํ์ผ ์ค๋ช ์๋ ์ด์ exec ๋ช ๋ น์ด ์คํ๋ ๋ ์ฆ์ ๋ซํ์ง ์๊ณ O_CLOEXEC(close-on-exec) ํ๋๊ทธ๋ก ํ์๋์ด exec ๋ช ๋ น์ ์ํด ๊ฐ์ ์ ์ผ๋ก ์์๋ ์๋น์ค์ ํธ๋ค์ ์ ๋ฌํ ์ ์์ต๋๋ค.
- ์ด์ ํด๋ผ์ด์ธํธ ์ฐ๊ฒฐ์ด ๋น์ฐจ๋จ ๋ฐฉ์์ผ๋ก ์ฒ๋ฆฌ๋์ด ๋ถ์์ ํ ๋ช ๋ น์ ๋ณด๋ผ ๋ Shepherd๊ฐ ์ค๋จ๋๋ ๊ฒ์ ๋ฐฉ์งํฉ๋๋ค.
- ์กด์ฌํ์ง ์๋ ๊ฒฝ์ฐ "log-file" ์ค์ ์ ์ ์๋ ๋ก๊ทธ ํ์ผ์ ๋ํ ๋๋ ํฐ๋ฆฌ๊ฐ ์์ฑ๋๋์ง ํ์ธํฉ๋๋ค.
์ถ์ฒ : opennet.ru