์ด ํฌ์คํ ์ ์ฟ ํก ํํธ๋์ค ํ๋์ ์ผํ์ผ๋ก, ์ด์ ๋ฐ๋ฅธ ์ผ์ ์ก์ ์์๋ฃ๋ฅผ ์ ๊ณต๋ฐ์ ์ ์์ต๋๋ค.
๋ฐ์ํ
๊ธ์ด์ด : ํธ์ฐ ๋ ์ง : 08-03-01 19:09 ์กฐํ : 486 | ||||||||
์์ฆ ํต ๊ธ์ ์ ์ฌ๋ ธ๋ค์.
์์ฆ ํ์ฌ์ผ๋ก ์ ์ ์ด ์๋ค์.
์ฃ์กํ๊ตฌ์. ^^;
์๋ฌดํผ ์ด๋ฒ์๋ UNIX/LINUX์ Deamon ํ๋ก์ธ์ค ๋ง๋๋ ๊ฒ์ ๋ํด ์ ๋ฆฌํด ๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
1. Daemon์ด๋?
๋ญ ์ด๊ธ์ ๊ด์ฌ์ด ์์ด์ ์ฝ๊ณ ๊ณ์๋ ๋ถ ์ค์ Daemon์ด ๋ญ์ง๋ฅผ ๋ชจ๋ฅด์๋ ๋ถ์ ์๊ฒ ์ง๋ง...
๊ทธ๋๋ ํ๋ฒ ์ ๋ฆฌํด ๋ด
๋๋ค.
Daemon์ ๋ป ์์ฒด๋ "์
๋ง", "์
๋ น", "๊ท์ "๊ณผ ๊ฐ์ด ์ข ๋ฌด์๋ฌด์ ํฉ๋๋ค.
ํ์ง๋ง Daemon์ ์ด์์ ์ ํ์์ ์ ๊ณผ ์ธ๊ฐ์ฌ์ด์ ์ด์์ฐ์ ์ธ ์์ ์กด์ฌ๋ก์์ ์ํธ์ ์์ ๋์๋ค๊ณ ํฉ๋๋ค. ๋ญ ์ข์์ชฝ์ผ๋ก ์๊ฐํ์ฃ .
์ปดํจํฐ ์์์ Daemon์ ๊ฒ์ผ๋ก๋ ๋ณด์ด์ง ์์ง๋ง ํญ์ ๋ค์์ ๋ญ๊ฐ๋ฅผ ๊ณ์ํด์ ์ํํด ์ฃผ๋ ํ๋ก๊ทธ๋จ์ ๋งํฉ๋๋ค. ์๋ก httpd, ftpd, telnetd ๋ฑ...
์ด๋ฐ๋ฉด์์ ์ Daemon์ด๋ผ๋ ์ด๋ฆ ์ง์๋์ง ์ดํด๊ฐ ๊ฐ๋ค์.
์๋์ฐ์ฆ์์๋ Daemon์ด๋ผ๋ ์ฉ์ด๊ฐ ๋ง์์ ๋ค์ง ์์๋์ง ์๋๋ฉด ๋ญ๊ฐ ๊ผญ ํ๊ฒ ํด์ผํ๋ค๊ณ ์๊ฐํ๋์ง ๋ชฐ๋ผ๋... UNIX/LINUX์ Daemon๊ณผ ๊ฐ์ ์ญํ ์ ํ๋ ํ๋ก๊ทธ๋จ์ Service ๋ผ๊ณ ํฉ๋๋ค.
"๋ฐ๋ชฌ"์ ์ด๋ฆ์ ๋ญ๊ฐ ์ฒ ํ์ ๋ด์ ์ง์๊ฒ ๊ฐ์๋ฐ... "์๋น์ค"... ์ฐธ ๋จ์ํด์ ์ข๊ธด ์ข๋ค์. ใ
ใ
^^;
Daemon ํ๋ก๊ทธ๋จ์ด ๋๋ ค๋ฉด ๋ช๊ฐ์ง ํน์ง์ ๊ฐ์ถ์ด์ผ ํ์ง๋ง ๊ฐ์ฅ ์ค์ํ ๊ฒ์ "OS๊ฐ ๋ถํ
๋๋ฉด ์ฌ์ฉ์์ ๊ฐ์
์์ด ์คํ๋ ์ ์์ ๊ฒ"์
๋๋ค.
์ด ๋ง์ ๋ค์ ๋งํด ๋๊ตฐ๊ฐ๊ฐ ๋ก๊ทธ์ธ์ ํ์ฌ ๊ตณ์ด ์คํํ์ง ์์๋ OS์ initํ๋ก์ธ์ค์ ์ํด ์คํ๋ ์ ์์ด์ผ ํ๋ค๋
์ด์ผ๊ธฐ ์ด๊ณ ์ด๋ด๋ ค๋ฉด ํ๋ก๊ทธ๋จ์ ์ ์ดํ๋ ํฐ๋ฏธ๋(tty)๋ฅผ ๊ฐ์ง ๋ง์์ผ ํ๋ค๋ ๊ฒ ์
๋๋ค. ๋ฐ๋๋ก ๋งํ๋ฉด ๋๊ตฐ๊ฐ ๋ก๊ทธ์ธ ํด์
๋ฐ๋ชฌ์ ์์์์ผฐ๋ค๋ฉด ๋ก๊ทธ์์ํ ๋ ํด๋น ๋ฐ๋ชฌ์ ๊ณ์ํด์ ์ด์ ์์ด์ผ ํ๋ค๋ ๋ง๋ ๋ฉ๋๋ค.
์ด์ ์ด๋ฌํ ํน์ง์ ๊ฐ๋ ํ๋ก๊ทธ๋จ์ ๋ง๋๋ ๋ฐฉ๋ฒ์ ๋จ๊ณ๋ณ๋ก ์์๋ณด๋๋ก ํ์ฃ .
2. ๋ก๊ทธ ์์์ ํ๋ก๊ทธ๋จ ์ข
๋ฃ๋์ง ์๊ฒ ํ๊ธฐ
์ฐ์ ๋ฐ๋ชฌ์ ์๋๋๋ผ๋ ๋ฐ๋ชฌ๊ณผ ๋น์ทํ๊ฒ ์ํํ๋ฉด ๊ณ์ํด์ ์์
์ ์ํ ํ ์ ์๋๋ก ํ๋ ๋ฐฉ๋ฒ์ ๋ํด์ ์์ ๋ณด๊ฒ ์ต๋๋ค.
๊ธฐ๋ณธ ์์ค๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์์ ํ๋ก๊ทธ๋จ์ ๊ฐ๋จํ๋๊น ๋ณด์๋ฉด ์์๊ฒ ์ง๋ง main()ํจ์๊ฐ ์ํ๋๋ฉด work()๋ผ๋ ํจ์๋ฅผ ์ํํ๊ฒ ๋ฉ๋๋ค.
work()ํจ์๋ ๋ฌดํ๋ฃจํ๋ฅผ ๋๋ฉด์ 1์ด๋ง๋ค "/tmp/daemon.out"ํ์ผ์ ์นด์ดํ
์ ๊ธฐ๋กํฉ๋๋ค.
๋ ํ์ค์ถ๋ ฅ์ผ๋ก๋ ๊ฐ์ ๊ฐ์ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์
๋๋ค.
์์ ์์ค๋ฅผ ์ปดํ์ผํ์ฌ daemon์ด๋ผ๋ ์คํํ์ผ์ ์์ฑํ๋ค๊ณ ํ๊ณ ๋ค์์ ๊ธ๋ค์ ์์ฑํ ๋ก ํ๊ฒ ์ต๋๋ค.
์ ๊ทธ๋ผ ๋ก๊ทธ์์์ด ๋ ๋ ์ด๋ค ํ์์ด ์ผ์ด๋ ์ง์ ๋ํด ํ๋ฒ ์์๋ณด๋๋ก ํ์ฃ .
๋ก๊ทธ์์ํ๊ฑฐ๋ ํด๋น ํฐ๋ฏธ๋์ด ๋๊ธฐ๊ฒ ๋๋ฉด OS ํด๋น ํฐ๋ฏธ๋์ ์ ์ด๋จ๋ง๋ก ์ฌ์ฉํ๋ ๋ชจ๋ ํ๋ก๊ทธ๋จ์๊ฒ ํน๋ณํ ์ ํธ๋ฅผ ๋ณด๋ด๊ฒ ๋ฉ๋๋ค.
์ด ์ ํธ๊ฐ SIGHUP, ์ฆ, Hangup ์๊ทธ๋์
๋๋ค.
์ผ๋ฐ์ ์ธ ํ๋ก๊ทธ๋จ์ ์ด Hangup ์๊ทธ๋์ ๋ฐ์ผ๋ฉด ์ ์์ข
๋ฃ๋ฅผ ํ๊ฒ ๋ฉ๋๋ค.
๋ญ ํ๋ก์ธ์ค๊ฐ ์์์ ์ ์์ข
๋ฃ ํ๋ค๊ธฐ ๋ณด๋ค๋ ์ด ์๊ทธ๋์ ์ด๋ป๊ฒ ์ฒ๋ฆฌํ๋ผ๋ ๋ฃจํด์ ๊ตฌํํ์ง ์์ ํ๋ก์ธ์ค๋ ์กฐ์ฉํ OS๊ฐ ์ฃฝ์ด๋ ๊ฒ์ด์ฃ .
OS์ SIGHUP์ ๋ฌด์ํ๊ฒ ํด์ฃผ๋ 'nohup'์ด๋ผ๋ ์๋ช
๋ น์ด๊ฐ ์์ต๋๋ค.
์ผ๋ฐ์ ์ธ ์ฌ์ฉ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์์ ๋ช
๋ น์ด ์ค daemon์ ๋ฐ๋ชฌ ํ๋ก๊ทธ๋จ์ ์ด๋ฆ์ด๊ณ ๋ง์ง๋ง &๋ ์ด ๊ธ์ ์ฃผ์ ์๋ ์๊ด์์ง๋ง ๋ฐฑ๊ทธ๋ผ์ด๋๋ก ์คํํด์ ํ๋กฌํํธ๋ฅผ ๋ค์ ์ป๊ธฐ ์ํจ์
๋๋ค.
์ด๋ ๊ฒ daemon์ ์คํํ ๋ค ๋ก๊ทธ์์ํ๊ฑฐ๋ ๋จ๋ง๊ธฐ๋ฅผ ๋๊ณ ๋ค์ ์ ์ํ ๋ค์ "ps -ef | grep daemon" ๋ช
๋ น์ ํตํด ๋ณด์๋ฉด daemon์ด ์ด์ ์์์ ๋ณด์ค ์ ์์ผ์ค ๊ฒ ์
๋๋ค.
๋ํ "tail -f /tmp/daemon.out" ํด์ ๋ณด์๋ฉด ์ด์ ์์ ๋ฟ ๋๋ฌ ์๋์ ๊ธฐ๋ฅ๋ ์ ์์ ์ผ๋ก ์ํ ํ๊ณ ์์์ ์ ์ ์์ต๋๋ค.
๊ทธ๋ฐ๋ฐ ์ฌ๊ธฐ์ ์๋ daemon์ ํ์ผ ๋ฟ๋ง ์๋๋ผ ํ๋ฉด์๋ ์นด์ดํ
๋ฒํธ๋ฅผ ์ถ๋ ฅํ๋๋ก ๋์ด ์์๋๋ฐ ์์ ๋ช
๋ น์ ์ํ ํ์๋ ์๋์ ๊ฐ์ ๋ฉ์์ง๋ง ๋จ๊ธฐ๊ณ ๋ํ๋์ง ์์ต๋๋ค.
์ด๋ nohup ๋ช
๋ น์ด๊ฐ daemon์ ํ์ค ์ถ๋ ฅ์ ํ์ฌ ๊ฒฝ๋ก์ 'nohup.out'์ด๋ผ๋ ํ์ผ๋ก ๋ฆฌ๋ค์ด๋ ํธ ์์ผฐ๊ธฐ ๋๋ฌธ์
๋๋ค.
์ด์ฐ๋์๊ฑด ์์์ ์ ๊ณตํ๋ ๋ช
๋ น์ด๋ฅผ ํตํด ๋ฐ๋ชฌ๊ณผ ์ ์ฌํ ๊ธฐ๋ฅ์ ํ๋๋ก ํด ๋ณด์๋ค์.
์ ์ด๋ฒ์๋ 'nohup'๊ณผ ๊ฐ์ ๊ธฐ๋ฅ์ ์์คํ
ํจ์๋ก ๊ตฌํํด ๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
๊ณจ์๋ ํ๋ก๊ทธ๋จ ๋ด์์ SIGHUP์๊ทธ๋์ ๋ฌด์ํ ์ ์๋๋ก ์ฝ๋ฉํ๋ ๊ฒ์
๋๋ค.
์ ํจ์์ #include <signal.h> ๋ฅผ ํฌํจํ๊ณ mainํจ์๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ๊ณ ์นฉ๋๋ค.
์ง๊ธ ๋ถํฐ๋ work()ํจ์์ ํ์ค ์ถ๋ ฅ์ด ๊ท์ฐฎ์ ์ง๋ฏ๋ก ํ์ค ์ถ๋ ฅ์ผ๋ก ๋ด๋ณด๋ ๋ฌธ์ฅ์ ์ ์ ํ ์ญ์ ํ์
๋ ์ข์ต๋๋ค.
์์ main()ํจ์๋ signal()ํจ์๋ฅผ ํตํด SIGHUP์๊ทธ๋์ ๋ฌด์ํ๋๋ก ์ค์ ํ ๋ค work()ํจ์๋ฅผ ์ํํ ๊ฒ์
๋๋ค.
์ปดํ์ผ ํ ํ
์คํธ๋ ์ฌ๋ฌ๋ถ์ ๋ชซ์ผ๋ก ํ๊ตฌ์.
SIGHUP์ ๋ฌด์ํ๋ ๋ฐฉ๋ฒ์ ์๋์ง๋ง ๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ด ์๋๋ฐ ์ด๋ ํ๋ก์ธ์ค ๋ด์์ ์์ ์ ๊ทธ๋ฃน์์ด๋๋ฅผ ๋ฐ๊พธ๋ ๊ฒ์
๋๋ค.
์ด๋ ๋ก๊ทธ ์์์ ํ์ฌ ํฐ๋ฏธ๋์ ์ ์ด ๋จ๋ง๊ธฐ๋ก ํ๊ณ ์๋ ํ๋ก์ธ์ค์ OS๊ฐ SIGHUP์๊ทธ๋์ ๋ณด๋ผ ๋ ์ํ๋ก์ธ์ค์ ์์ด๋๋ฅผ ๊ทธ๋ฃน์์ด๋๋ก ๊ฐ๋ ๋ชจ๋ ํ๋ก์ธ์ค์๊ฒ ๋ณด๋ธ๋ค๋ ๊ฒ์ ์ฐฉ์ํ ๊ฒ์
๋๋ค.
์ฆ, ํ๋ก๊ทธ๋จ์ ํน์ ์ํ๋ก์ธ์ค์์ ์ํ๋๊ธฐ ๋๋ฌธ์ ์ผ๋ฐ์ ์ผ๋ก ํ๋ก์ธ์ค ๊ทธ๋ฃน์์ด๋๋ ์ํ ํ๊ฒฝ์ด ๋์๋ ์ํ๋ก์ธ์ค ์์ด๋๋ฅผ ๊ฐ๊ฒ ๋๋๋ฐ ์ด๋ฅผ ํ๋ก์ธ์ค ๋ด์๊ฒ ๋ฐ๊พธ๋ ๊ฒ์
๋๋ค.
์์ ์์ค์ ๋ณด์ด๋ setpgrp()ํจ์๋ ์์ ์ ํ๋ก์ธ์ค ๊ทธ๋ฃน์ ์์ ์ ํ๋ก์ธ์ค์์ด๋๋ก ๋ฐ๊ฟ์ค๋๋ค.
์ด๋ ๊ฒ ํ๋ฉด ๋ก๊ทธ์์์ ์ด ํ๋ก์ธ์ค๋ ์์ SIGHUP์๊ทธ๋์ ๋ฐ์ง๋ ์์ผ๋ฏ๋ก ์ข
๋ฃ๋์ง ์์ต๋๋ค.
์ ์ฌ๊ธฐ๊น์ง๋ ๋ฐ๋ชฌ ํ๋ก๊ทธ๋จ์ ๋ง๋๋ ๋ฒ์ด๋ผ๊ธฐ ๋ณด๋ค๋ ์ผ๋ฐ์ ์ผ๋ก ํ๋ก์ธ์ค์์ ์ผ์ด๋๋ ์ผ๊ณผ ์ด๋ค์ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ, ๊ทธ๋ฆฌ๊ณ ๊ฐ๋จํ ๋ฐ๋ชฌ๊ณผ ์ ์ฌํ ํจ๊ณผ ๋ด๊ธฐ๋ผ๊ณ ์๊ฐํ์๋ฉด ๋ ๋ฏ ์ถ์ต๋๋ค.
3. fork์ ์ํ Daemon๋ง๋ค๊ธฐ
์์์ ์ด์ผ๊ธฐ ํ ๋ฐฉ๋ฒ๋ค๋ ๋ญ ์๋ชป๋ ๋ฐฉ๋ฒ๋ค์ ์๋์ง๋ง ์ผ๋ฐ์ ์ผ๋ก๋ ์ด์ ๋ถํฐ ์ด์ผ๊ธฐ ํ๋ ๋ฐฉ๋ฒ์ผ๋ก ์ฃผ๋ก ๋ฐ๋ชฌ์ ๋ง๋ญ๋๋ค.
main()ํจ์๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ๋ฐ๊พธ์ธ์.
์์ main()ํจ์๋ ํ๋ก๊ทธ๋จ์ด ์์๋์ ๋ง์ fork()๋ฅผ ์ํํด์ ์์ํ๋ก์ธ์ค๋ work()ํจ์๋ฅผ ์ํํ๊ณ ๋ถ๋ชจํ๋ก์ธ์ค๋ ์ข
๋ฃํ๊ฒ ํฉ๋๋ค.
๊ทธ๋ฌ๋ฉด ์ฌ์ค ์์ํ๋ก์ธ์ค๋ ์์ง ์ด์ ์๋๋ฐ ๋ถ๋ชจํ๋ก์ธ์ค๊ฐ ํฐ๋ฏธ๋๊ณผ ์ฐ๊ฒฐ๋์ด ์์๋๋ฐ ์ฌ๋ผ์ง๊ฒ ๋ฉ๋๋ค. ๊ณ ๋ก ์์ ํ๋ก์ธ์ค๋ ์ ์ด๋จ๋ง๊ธฐ๋ฅผ ๊ฐ์ง์ง ์๊ฒ ๋๊ณ ๋ถ๋ชจ๊ฐ ์์ผ๋ฏ๋ก ๊ณ ์ํ๋ก์ธ์ค๊ฐ ๋์๋ค์.
์ด๋ ๊ฒ ๊ณ ์ํ๋ก์ธ์ค๊ฐ ๋ฐ์ํ๋ฉด OS๋ ์ด ๊ณ ์ ํ๋ก์ธ์ค๋ฅผ initํ๋ก์ธ์ค์ ์์์ผ๋ก ๋ง๋ค์ด ์ค๋๋ค.
๋ถ๋ชจ,์์,๊ณ ์๋ฅผ ์ด์ผ๊ธฐ ํ์ผ๋ ์
์์ด๋ผ๊ณ ํด์ผ ํ ๊น์? ใ
ใ
ใ
ํ์ง๋ง ์๋ initํ๋ก์ธ์ค๋ 1๋ฒ ํ๋ก์ธ์ค๋ก์ ์กฐ์ ํ๋ก์ธ์ค์ ํด๋น๋จ์ผ๋ก ์
์์ด๋ผ๊ณ ํ๊ธฐ๋ ์ข ๊ทธ๋ ๋ค์.
์๋ฌดํผ ์์ ํ๋ก๊ทธ๋จ์ ์๋ฌด ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ์ข๋น๊ฐ ๋ฐ์ํ์ง๋ ์๊ตฌ์.
ํ์ง๋ง ์ด๋ฐ ์ผ์ด์ค๋ฅผ ์๊ฐํด ๋ณด์ฃ .
daemon๋ ํ๋ก์ธ์ค์ด๋ฏ๋ก ํ์ฌ ์์
๋๋ ํ ๋ฆฌ๋ฅผ ๊ฐ์ต๋๋ค.
๊ทธ๋์ ์ด daemon์ด ์คํ๋ ํ daemon์ ์คํ ์์ผฐ๋ ๋๋ ํ ๋ฆฌ๊ฐ ์ํ ํ์ผ์์คํ
์ "umount" ์ํค๋ ค ํ๋ค๋ฉด OS๋ ํด๋น ํ์ผ์์คํ
์ด ์ฌ์ฉ๋๊ณ ์๋ค๊ณ umount ํ์ง ๋ชปํ๋ค๊ณ ํ ๊ฒ ์
๋๋ค.
์ด๋ฐ ๊ฒฝ์ฐ ํด๋น ๋ฐ๋ชฌ์ ๋ด๋ ค์ผ ํ๋๋ฐ...
๋์ฑ ๋์ ๊ฒฝ์ฐ๋ ์ด๋ค ๋ฐ๋ชฌ์ด ์ด ํ์ผ์์คํ
์ ์ฌ์ฉํ๊ณ ์๋์ง๋ฅผ ์๊ธฐ๊ฐ ํ๋ค๋ค๋ ๊ฒ์ด์ฃ .
๊ทธ๋์ ๋ฐ๋ชฌ์ ๋ฐ๋ชฌ์ด ๋๊ธฐ ์ ์ ํ์ฌ ๊ฒฝ๋ก๋ฅผ "/'์ ๊ฐ์ด "umount"๋ ์ ์๋ ๊ณณ์ผ๋ก ์ฎ๊ธฐ๋ ๊ฒ์ด ์ข์ต๋๋ค.
๋ ํ๊ฐ์ง ๊ณ ๋ คํด์ผ ํ ๊ฒ์ ํ์ฌ daemon์ ๋ญ ํ์ผ์ ์ซ์๋ง ์ ๊ณ ์์ง๋ง ์ฌ๋ฌ๋ถ์ด ๋ง๋๋ deamon์ ์ด๋ค ์ผ์ ํ๊ฒ ๋ ์ง ์ฌ์ค ๋ชจ๋ฆ
๋๋ค.
์๋ฅผ ๋ค์ด daemon์ด ๋ fork๋ฅผ ํด์ ์์ ํ๋ก์ธ์ค๋ค์ ๊ฐ์ ์๋ ์๊ณ exec()ํจ์๋ system()ํจ์์ ์ํด ์์ ๋ค๋ฅธ ํ๋ก๊ทธ๋จ์ ์คํ ์ํฌ ์๋ ์์ ๊ฒ์
๋๋ค.
์ด๋ ์๋ก ์์ฑ๋๋ ํ๋ก์ธ์ค๋ฅผ ํ์ฌ daemon์ด ์ ์ด ํ ์ ์๋ค๋ฉด ์ด ๋ํ ๋ฌธ์ ์ผ ์ ์๊ฒ ์ฃ ?
๊ทธ๋์ ๋ฐ๋ชฌํ๋ก์ธ์ค๋ ๋ฐ๋ชฌ์ด ๋ ์ง ํ ์์ ์ด ์ํ ํ๋ก์ธ์ค ๊ทธ๋ฃน์ ๋ฆฌ๋๊ฐ ์๋๋ผ๋ฉด ์๋ก์ด ํ๋ก์ธ์ค ์ธ์
์ ๋ง๋ค๊ณ
์์ ์ด ๋ฆฌ๋๊ฐ ๋ ํ ๋ค์ ์์
๋ค์ ํ๊ฒ ๋ฉ๋๋ค. ์ด๋ฌํ ๊ธฐ๋ฅ์ ํ๋ ํจ์๊ฐ ๋ฐ๋ก setsid()๋ผ๋ ํจ์ ์
๋๋ค. (์ฐธ์กฐ: http://teamblog.joinc.co.kr/yundream/226)
์๋ ์์ค๋ chdir()๊ณผ setsid()ํจ์๋ฅผ ํธ์ถํ์ฌ ์์์ ์ด์ผ๊ธฐํ ๋ด์ฉ์ ๋ฐ์ํ๊ณ ์์ต๋๋ค.
์ ์ฌ๊ธฐ๊น์ง ํ๋ฉด ๋ญ ๋ฐ๋ชฌ์ด ์ ๋ง๋ค์ด ์ง ๊ฒ ์
๋๋ค.
์ถ๊ฐ๋ก ์ค์ ๋ฐ๋ชฌ์ ํ๋ก๊ทธ๋๋ฐ ํ์ค ๋ ์ฃผ์ํ์ค ์ ์ ์๊ทธ๋์ ๋ํ ์ฒ๋ฆฌ๋ฅผ ๊ผญ ํ์๋ผ๋ ๊ฒ ์
๋๋ค.
์์ ์ํ ์์ค๋ ๋ญ ํน๋ณํ๊ฒ ์๊ทธ๋ ์ฒ๋ฆฌ๋ฅผ ํ ๊ป ๋ฑํ ์์ง๋ง ์๋ฅผ ๋ค์ด ์น์๋ฒ์ ๊ฐ์ด ํต์ ํ๋ก๊ทธ๋จ์ธ ๊ฒฝ์ฐ SIG_PIPE์ ๊ฐ์ ์๊ทธ๋์ ์ฒ๋ฆฌํด์ผ ํฉ๋๋ค.
4. ์ค๋๊ธฐ ๊ฐ์ Daemon๋ง๋ค๊ธฐ
๋ง์ง๋ง์ผ๋ก ์ด์ผ๊ธฐ ํ๋ ๊ฒ์ ์ผ๋ฐ์ ์ธ ๋ฐ๋ชฌ์ ๋ํ ์ด์ผ๊ธฐ๋ ์๋๊ตฌ์ ํ๊ฐ์ ๊ฑฐ๋ผ๊ณ ํ ๊น์?
๋ฐ๋ชฌ์ ์๋น์ค ์ ๊ณตํ๋ ํ๋ก์ธ์ค์ด๋ค ๋ณด๋๊น...
์์คํ
์ด ์์๋๋ฉด ์์๋์ ๋๋ ๋ ๊น์ง ์ด์ ์์ด์ผ ํ๋๋ฐ...
์ฐ๋ฆฌ๊ฐ ์ง๋ ํ๋ก๊ทธ๋จ์ด ๋ฌธ์ ๊ฐ ์๋ค๊ณ ์ฅ๋ดํ ์๋ ์๊ฒ ์ฃ ? (์ ๋ง ๊ทธ๋ฐ๊ฐ?)
๋ง์ฝ ๋ฐ๋ชฌ์ผ๋ก ๋์ด ํ๋ก๊ทธ๋จ์ด ์ฃฝ์ผ๋ฉด ํ๊ฒฉ์ด ํฌ์ฃ .
๋ญ ๊ทธ ํ๊ฒฉ์ ํ๊ฒฉ์ด๋๋ผ๋ ์ธ์
์ด๋ ํธ๋์ญ์
์ด ์ค์ํ ์๋น์ค๊ฐ ์๋ ๊ฒฝ์ฐ๋ผ๋ฉด ๋นจ๋ฆฌ ๋ค์ ์์์ด๋ผ๋ ์์ผ์ ์ ์ํ๋ฅผ ์ํค๊ณ ์ถ์ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค.
์ด๋ฐ ๊ฒฝ์ฐ์ ๋ค์๊ณผ ๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก ํ ์ ์์ ๊ฒ์
๋๋ค.
๋จผ์ ์ผ๋ฐ ๋ฐ๋ชฌ์ ํ๋ ๋ง๋ค๊ธฐ ์ํด ์ผ๋ฐ forkํ์๊ตฌ์.
๊ทธ๋ฆฌ๊ณ ๋ค์ fork๋ฅผ ํด์ ์์ํ๋ก์ธ์ค๋ ์๋น์ค๋ฅผ ์ํํ๊ตฌ์ ๋ถ๋ชจํ๋ก์ธ์ค๋ ์์์ด ์ข
๋ฃ๋๊ธฐ๋ฅผ ๊ธฐ๋ค๋ฆฝ๋๋ค.
๊ทธ๋ฐ๋ฐ ์์ํ๋ก์ธ์ค๋ ๋ฌดํ๋ฃจํ์ผ ๊ฑฐ๋๊น...
๋ถ๋ชจํ๋ก์ธ์ค ์
์ฅ์์ ์์์ด ์ข
๋ฃ๋์๋ค๋ฉด ์ค์ ๋ก๋ ๋ญ๊ฐ ๋ฌธ์ ๊ฐ ์๊ธด ๊ฒ์ด๊ฒ ์ฃ ?
์ด๋ ๋ค์ fork๋ฅผ ํด์ ์์ ๊ณผ์ ์ ๋ฐ๋ณตํฉ๋๋ค.
์์ค๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๋ง์ฝ ์์์ด ์ข
๋ฃ๋ ๋ ์ํ๋ฅผ ์๊ณ ์ ํ๋ค๋ฉด wait()ํจ์์ ์ธ์์ธ ret๊ฐ์ ์กฐ์ฌํ๋ฉด ๋ฉ๋๋ค.
์ ์ด๋ ๊ฒ ํด์ UNIX/LINUX์์ Daemon๋ง๋ค๊ธฐ์ ๋ํ ์ด์ผ๊ธฐ๋ฅผ ๋ง์น๋๋ก ํ๊ฒ ์ต๋๋ค.
|
๋ฐ์ํ