Ubuntu Online, Fedora Online, Windows ์จ๋ผ์ธ ์๋ฎฌ๋ ์ดํฐ ๋๋ MAC OS ์จ๋ผ์ธ ์๋ฎฌ๋ ์ดํฐ์ ๊ฐ์ ์ฌ๋ฌ ๋ฌด๋ฃ ์จ๋ผ์ธ ์ํฌ์คํ ์ด์ ์ค ํ๋๋ฅผ ์ฌ์ฉํ์ฌ OnWorks ๋ฌด๋ฃ ํธ์คํ ์ ๊ณต์ ์ฒด์์ ์คํํ ์ ์๋ echo_supervisord_conf ๋ช ๋ น์ ๋๋ค.
ํ๋ก๊ทธ๋จ:
์ด๋ฆ
echo_supervisord_conf - ๊ฐ๋ ์ ๊ตฌ์ฑ ๋ฌธ์
Supervisor๋ ์ฌ์ฉ์๊ฐ ๋ฒํธ๋ฅผ ๋ชจ๋ํฐ๋งํ๊ณ ์ ์ดํ ์ ์๋ ํด๋ผ์ด์ธํธ/์๋ฒ ์์คํ ์ ๋๋ค.
UNIX ๊ณ์ด ์ด์ ์ฒด์ ์ ํ๋ก์ธ์ค
launchd, daemontools ๋ฐ runit๊ณผ ๊ฐ์ ํ๋ก๊ทธ๋จ์ ๋์ผํ ๋ชฉํ ์ค ์ผ๋ถ๋ฅผ ๊ณต์ ํฉ๋๋ค. ๊ฐ์ง ์์
์ด๋ฌํ ํ๋ก๊ทธ๋จ ์ค ์ผ๋ถ๋ INIT "ํ๋ก์ธ์ค ID๋ก
1". ๋์ ํ๋ก์ ํธ ๋๋ ํ๋ก์ ํธ์ ๊ด๋ จ๋ ํ๋ก์ธ์ค๋ฅผ ์ ์ดํ๋ โโ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
๊ณ ๊ฐ์ด๋ฉฐ ๋ถํ ์ ๋ค๋ฅธ ํ๋ก๊ทธ๋จ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ์์ํ๋๋ก ๋์ด ์์ต๋๋ค.
์ฌ์ฉ ์ค๋ช ์
๋ง๋ค๊ธฐ a ๊ตฌ์ฑ ์ ์ ๋ถ๋ชจ๋ก์์ ๊ทํ์ ์ ํฉ์ฑ์ ๊ฒฐ์ ํ๊ธฐ ์ํด ๋ฏธ๊ตญ ์ด๋ฏผ๊ตญ์
Supervisor ์ค์น๊ฐ ์๋ฃ๋๋ฉด ๋ค์์ ์คํํ์ญ์์ค. echo_supervisord_conf. ์ด๊ฒ์ ๊ฒ์ ๋๋ค
"์ํ" ๊ฐ๋ ์ ๊ตฌ์ฑ ํ์ผ์ ํฐ๋ฏธ๋์ ํ์ค ์ถ๋ ฅ์ผ๋ก ์ธ์ํฉ๋๋ค.
ํ์ผ์ด ํฐ๋ฏธ๋์ ์์ฝ๋๋ฉด ๋ค์๊ณผ ๊ฐ์ด ๋ช ๋ น์ ๋ค์ ํธ์ถํ์ญ์์ค.
echo_supervisord_conf > /etc/supervisord.conf. ๋ฃจํธ๊ฐ ์์ผ๋ฉด ์๋ํ์ง ์์ต๋๋ค.
์ก์ธ์ค ํ ์ ์์ต๋๋ค.
๋ฃจํธ ์ก์ธ์ค ๊ถํ์ด ์๊ฑฐ๋ ๊ฐ๋ ์.conf ์์๋ ํ์ผ์
/etc/supervisord.conf`, ํ์ฌ ๋๋ ํฐ๋ฆฌ(echo_supervisord_conf >
๊ฐ๋ ์.conf) ์์ ๊ฐ๋ ์ ์ ๋๋ถ์ด -c ํ๋๊ทธ๋ฅผ ์ง์ ํ๊ธฐ ์ํด
๊ตฌ์ฑ ํ์ผ ์์น.
์๋ฅผ ๋ค์ด, ๊ฐ๋ ์ -c ๊ฐ๋ ์.conf. ์ฌ์ฉ -c ํ๋๊ทธ๋ ์ค์ ๋ก ์ค๋ณต๋ฉ๋๋ค.
์ด ๊ฒฝ์ฐ ๋๋ฌธ์ ๊ฐ๋ ์ ํ์ฌ ๋๋ ํ ๋ฆฌ์์ ๋ค์์ ๊ฒ์ํฉ๋๋ค. ๊ฐ๋ ์.conf
ํ์ผ์ ๋ค๋ฅธ ์์น๋ฅผ ๊ฒ์ํ๊ธฐ ์ ์ ์๋ํ์ง๋ง ์๋ํฉ๋๋ค.
ํ์ผ ์์คํ ์ ๊ตฌ์ฑ ํ์ผ์ด ์์ผ๋ฉด ์ด๋ฅผ ์ํ๋ ๋๋ก ์์ ํ๊ธฐ ์์ํ ์ ์์ต๋๋ค.
๊ธฐํธ.
๊ตฌ์ฑ ์ ์ ๋ถ๋ชจ๋ก์์ ๊ทํ์ ์ ํฉ์ฑ์ ๊ฒฐ์ ํ๊ธฐ ์ํด ๋ฏธ๊ตญ ์ด๋ฏผ๊ตญ์
Supervisor ๊ตฌ์ฑ ํ์ผ์ ์ด๋ฆ์ ์ผ๋ฐ์ ์ผ๋ก ๊ฐ๋ ์.conf. ๊ทธ๊ฒ์์ ์ํด ์ฌ์ฉ
๋ ๊ฐ๋ ์ and ๊ฐ๋ ์ctl. ๋ ์์ฉ ํ๋ก๊ทธ๋จ ์ค ํ๋๊ฐ ์์ด ์์๋๋ ๊ฒฝ์ฐ -c
์ต์ (์์ฉ ํ๋ก๊ทธ๋จ์ ๊ตฌ์ฑ ํ์ผ ์ด๋ฆ์ ์๋ ค์ฃผ๋ ๋ฐ ์ฌ์ฉ๋๋ ์ต์
๋ช ์์ ์ผ๋ก), ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ค์๊ณผ ๊ฐ์ ํ์ผ์ ์ฐพ์ต๋๋ค. ๊ฐ๋ ์.conf ์ด๋ด
๋ค์ ์์น์์ ์ง์ ๋ ์์๋๋ก. ์ฐพ์ ์ฒซ ๋ฒ์งธ ํ์ผ์ ์ฌ์ฉํฉ๋๋ค.
1. $CWD/supervisord.conf
2. $CWD/etc/supervisord.conf
3. /etc/supervisord.conf
4. ../etc/supervisord.conf (์คํ ํ์ผ์ ์๋์ )
5. ../supervisord.conf (์คํ ํ์ผ์ ์๋์ )
์๋ฆผ:
์ผ๋ถ ๋ฐฐํฌํ์๋ ์์ฒด ์ฌ์ฉ์ ์ ์๊ฐ ํฌํจ๋ Supervisor ํจํค์ง๊ฐ ์์ต๋๋ค. ์ด๊ฒ๋ค
์์ ๋ ๋ฒ์ ์ Supervisor๋ ๋ค๋ฅธ ์์น์์ ๊ตฌ์ฑ ํ์ผ์ ๋ก๋ํ ์ ์์ต๋๋ค.
์ฌ๊ธฐ์ ์ค๋ช ๋ ๊ฒ๋ณด๋ค ํนํ, ๋ค์์ ์ฌ์ฉํ๋ Ubuntu ํจํค์ง๊ฐ ๋ฐ๊ฒฌ๋์์ต๋๋ค.
/etc/supervisor/supervisord.conf.
์ ์ ๋ถ๋ชจ๋ก์์ ๊ทํ์ ์ ํฉ์ฑ์ ๊ฒฐ์ ํ๊ธฐ ์ํด ๋ฏธ๊ตญ ์ด๋ฏผ๊ตญ์ ํ์ฑ
๊ฐ๋ ์.conf Windows-INI ์คํ์ผ(Python ConfigParser) ํ์ผ์ ๋๋ค. ์น์ ์ด ์์ต๋๋ค(๊ฐ๊ฐ
๋ก ํ์ [ํค๋]) ๋ฐ ์น์ ๋ด์ ํค/๊ฐ ์. ์น์ ๋ฐ ํด๋น
ํ์ฉ ๊ฐ๋ฅํ ๊ฐ์ ์๋์ ์ค๋ช ๋์ด ์์ต๋๋ค.
ํ๊ฒฝ ๋ณ์
๋น์ ํ๊ฒฝ์ ์กด์ฌํ๋ ํ๊ฒฝ ๋ณ์ ๊ฐ๋ ์ is
์์์ Python ๋ฌธ์์ด ํํ์ ๊ตฌ๋ฌธ์ ์ฌ์ฉํ์ฌ ๊ตฌ์ฑ ํ์ผ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
%(ENV_X)s:
[ํ๋ก๊ทธ๋จ:์์]
๋ช ๋ น=/usr/bin/example --loglevel=%(ENV_LOGLEVEL)s
์์ ์์์ ํํ์ %(ENV_LOGLEVEL)s ์ ๊ฐ์ผ๋ก ํ์ฅ๋ฉ๋๋ค.
ํ๊ฒฝ ๋ณ์ ๋ก๊ทธ๋ ๋ฒจ.
์๋ฆผ:
Supervisor 3.2 ์ด์์์๋ %(ENV_X)s ํํ์์ ๋ชจ๋ ์ต์ ์์ ์ง์๋ฉ๋๋ค. ์
์ด์ ๋ฒ์ ์์๋ ์ผ๋ถ ์ต์ ์ด ์ง์ํ์ง๋ง ๋๋ถ๋ถ์ ์ง์ํ์ง ์์ต๋๋ค. ์ ๋ํ ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
์๋์ ๊ฐ ์ต์ .
[์ ๋์ค_http_์๋ฒ] ์น์ ์ค์
์ด ์ดํ๋ฆฌ์ผ์ด์ ์๋ XNUMXยตm ๋ฐ XNUMXยตm ํ์ฅ์์ ์ต๋ XNUMXW์ ํ๊ท ์ถ๋ ฅ์ ์ ๊ณตํ๋ ๊ฐ๋ ์.conf ํ์ผ์ ๋ผ๋ ์น์ ์ด ํฌํจ๋์ด ์์ต๋๋ค. [์ ๋์ค_http_์๋ฒ] ๋ฐ์
UNIX ๋๋ฉ์ธ ์์ผ์์ ์์ ๋๊ธฐํ๋ HTTP ์๋ฒ์ ๋ํ ๊ตฌ์ฑ ๋งค๊ฐ๋ณ์๋ ๋ค์๊ณผ ๊ฐ์์ผ ํฉ๋๋ค.
์ฝ์ . ๊ตฌ์ฑ ํ์ผ์ ์๋ ๊ฒฝ์ฐ [์ ๋์ค_http_์๋ฒ] ์น์ , UNIX ๋๋ฉ์ธ
์์ผ HTTP ์๋ฒ๊ฐ ์์๋์ง ์์ต๋๋ค. ํ์ฉ๋๋ ๊ตฌ์ฑ ๊ฐ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๋ค์๊ณผ ๊ฐ์ต๋๋ค.
[์ ๋์ค_http_์๋ฒ] ์น์ ๋ง์ผํ ์:
ํ์ผ
UNIX ๋๋ฉ์ธ ์์ผ์ ๋ํ ๊ฒฝ๋ก(์: /tmp/supervisord.sock) ๊ฐ๋ ์
HTTP/XML-RPC ์์ฒญ์ ์์ ํฉ๋๋ค. ๊ฐ๋ ์ctl XML-RPC๋ฅผ ์ฌ์ฉํ์ฌ ํต์
๊ฐ๋ ์ ์ด ํฌํธ๋ฅผ ํตํด. ์ด ์ต์ ์๋ ๊ฐ์ด ํฌํจ๋ ์ ์์ต๋๋ค. %(์ฌ๊ธฐ)s, ํ์ฅ
๊ฐ ์๋ ๋๋ ํ ๋ฆฌ๋ก ๊ฐ๋ ์ ๊ตฌ์ฑ ํ์ผ์ ์ฐพ์์ต๋๋ค.
ํ๋ง: ์์.
ํ์: ์๋.
๋์ : 3.0
chmod๋ฅผ
UNIX ๋๋ฉ์ธ ์์ผ์ UNIX ๊ถํ ๋ชจ๋ ๋นํธ๋ฅผ ๋ค์ ์์น์์ ์ด ๊ฐ์ผ๋ก ๋ณ๊ฒฝํฉ๋๋ค.
์์.
ํ๋ง: 0700
ํ์: ์๋.
๋์ : 3.0
chownํ์ง
์์ผ ํ์ผ์ ์ฌ์ฉ์ ๋ฐ ๊ทธ๋ฃน์ ์ด ๊ฐ์ผ๋ก ๋ณ๊ฒฝํฉ๋๋ค. UNIX ์ฌ์ฉ์ ์ด๋ฆ์ผ ์ ์์
(์ : ์ฑ์ ) ๋๋ ์ฝ๋ก ์ผ๋ก ๊ตฌ๋ถ๋ UNIX ์ฌ์ฉ์ ์ด๋ฆ ๋ฐ ๊ทธ๋ฃน(์: ํฌ๋ฆฌ์ค:ํ ).
ํ๋ง: Supervisord๋ฅผ ์์ํ๋ ์ฌ์ฉ์์ ์ฌ์ฉ์ ์ด๋ฆ๊ณผ ๊ทธ๋ฃน์ ์ฌ์ฉํฉ๋๋ค.
ํ์: ์๋.
๋์ : 3.0
์ฌ์ฉ์ ์ด๋ฆ
์ด HTTP ์๋ฒ์ ๋ํ ์ธ์ฆ์ ํ์ํ ์ฌ์ฉ์ ์ด๋ฆ์ ๋๋ค.
ํ๋ง: ์ฌ์ฉ์ ์ด๋ฆ์ด ํ์ํ์ง ์์ต๋๋ค.
ํ์: ์๋.
๋์ : 3.0
์ํธ
์ด HTTP ์๋ฒ์ ๋ํ ์ธ์ฆ์ ํ์ํ ๋น๋ฐ๋ฒํธ์ ๋๋ค. ์ด๊ฒ์ ์ผ๋ฐ ํ ์คํธ๊ฐ ๋ ์ ์์ต๋๋ค
๋น๋ฐ๋ฒํธ ๋๋ ๋ฌธ์์ด์ด ์ ๋์ด์ธ ๊ฒฝ์ฐ SHA-1 ํด์๋ก ์ง์ ํ ์ ์์ต๋๋ค. {์ค}. ์ฉ
์, {SHA}82ab876d1387bfafe46cc1c8a2ef074eae50cb1d SHA์ ์ ์ฅ๋ ๋ฒ์ ์ ๋๋ค.
๋น๋ฐ๋ฒํธ "๋น๋ฐ๋ฒํธ".
ํด์๋ ์ํธ๋ XNUMX์ง์ ํ์์ด์ด์ผ ํฉ๋๋ค.
ํ๋ง: ๋น๋ฐ๋ฒํธ๊ฐ ํ์ํ์ง ์์ต๋๋ค.
ํ์: ์๋.
๋์ : 3.0
[์ ๋์ค_http_์๋ฒ] ์น์ ์์
[์ ๋์ค_http_์๋ฒ]
ํ์ผ = /tmp/supervisor.sock
์ฑ๋ ๋ชจ๋ = 0777
chown=์๋ฌด๋ ์์:๊ทธ๋ฃน ์์
์ฌ์ฉ์ ์ด๋ฆ = ์ฌ์ฉ์
๋น๋ฐ๋ฒํธ = 123
[inet_http_์๋ฒ] ์น์ ์ค์
์ด ์ดํ๋ฆฌ์ผ์ด์ ์๋ XNUMXยตm ๋ฐ XNUMXยตm ํ์ฅ์์ ์ต๋ XNUMXW์ ํ๊ท ์ถ๋ ฅ์ ์ ๊ณตํ๋ ๊ฐ๋ ์.conf ํ์ผ์ ๋ผ๋ ์น์ ์ด ํฌํจ๋์ด ์์ต๋๋ค. [inet_http_์๋ฒ] ๋ฐ์
TCP(์ธํฐ๋ท) ์์ผ์์ ์์ ๋๊ธฐํ๋ HTTP ์๋ฒ์ ๊ตฌ์ฑ ๋งค๊ฐ๋ณ์๋
์ฝ์ ๋ฉ๋๋ค. ๊ตฌ์ฑ ํ์ผ์ ์๋ ๊ฒฝ์ฐ [inet_http_์๋ฒ] ์น์ , inet HTTP
์๋ฒ๊ฐ ์์๋์ง ์์ต๋๋ค. ํ์ฉ๋๋ ๊ตฌ์ฑ ๊ฐ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
[inet_http_์๋ฒ] ์น์ ๋ง์ผํ ์:
ํฌํธ
TCP ํธ์คํธ:ํฌํธ ๊ฐ ๋๋ (์: 127.0.0.1:9001) ๊ฐ๋ ์ด ๋ค์ ๊ฒ
HTTP/XML-RPC ์์ฒญ. ๊ฐ๋ ์ctl XML-RPC๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ๋ ์
์ด ํฌํธ๋ฅผ ํตํด. ๋จธ์ ์ ๋ชจ๋ ์ธํฐํ์ด์ค์์ ์์ ๋๊ธฐํ๋ ค๋ฉด ๋ค์์ ์ฌ์ฉํ์ญ์์ค. : 9001 or *:9001.
ํ๋ง: ๊ธฐ๋ณธ๊ฐ์ด ์์ต๋๋ค.
ํ์: ์.
๋์ : 3.0
์ฌ์ฉ์ ์ด๋ฆ
์ด HTTP ์๋ฒ์ ๋ํ ์ธ์ฆ์ ํ์ํ ์ฌ์ฉ์ ์ด๋ฆ์ ๋๋ค.
ํ๋ง: ์ฌ์ฉ์ ์ด๋ฆ์ด ํ์ํ์ง ์์ต๋๋ค.
ํ์: ์๋.
๋์ : 3.0
์ํธ
์ด HTTP ์๋ฒ์ ๋ํ ์ธ์ฆ์ ํ์ํ ๋น๋ฐ๋ฒํธ์ ๋๋ค. ์ด๊ฒ์ ์ผ๋ฐ ํ ์คํธ๊ฐ ๋ ์ ์์ต๋๋ค
๋น๋ฐ๋ฒํธ ๋๋ ๋ฌธ์์ด์ด ์ ๋์ด์ธ ๊ฒฝ์ฐ SHA-1 ํด์๋ก ์ง์ ํ ์ ์์ต๋๋ค. {์ค}. ์ฉ
์, {SHA}82ab876d1387bfafe46cc1c8a2ef074eae50cb1d SHA์ ์ ์ฅ๋ ๋ฒ์ ์ ๋๋ค.
๋น๋ฐ๋ฒํธ "๋น๋ฐ๋ฒํธ".
ํด์๋ ์ํธ๋ XNUMX์ง์ ํ์์ด์ด์ผ ํฉ๋๋ค.
ํ๋ง: ๋น๋ฐ๋ฒํธ๊ฐ ํ์ํ์ง ์์ต๋๋ค.
ํ์: ์๋.
๋์ : 3.0
[inet_http_์๋ฒ] ์น์ ์์
[inet_http_์๋ฒ]
ํฌํธ = 127.0.0.1:9001
์ฌ์ฉ์ ์ด๋ฆ = ์ฌ์ฉ์
๋น๋ฐ๋ฒํธ = 123
[๊ฐ๋ ๊ด] ์น์ ์ค์
์ด ์ดํ๋ฆฌ์ผ์ด์ ์๋ XNUMXยตm ๋ฐ XNUMXยตm ํ์ฅ์์ ์ต๋ XNUMXW์ ํ๊ท ์ถ๋ ฅ์ ์ ๊ณตํ๋ ๊ฐ๋ ์.conf ํ์ผ์ ๋ผ๋ ์น์ ์ด ํฌํจ๋์ด ์์ต๋๋ค. [๊ฐ๋ ๊ด] ์ด๋ค ์ ์ญ ์ค์ ์์
๊ทธ์ ๊ด๋ จ๋ ๊ฐ๋ ์ ํ๋ก์ธ์ค๋ฅผ ์ฝ์ ํด์ผ ํฉ๋๋ค. ์ด๋ค์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
[๊ฐ๋ ๊ด] ์น์ ๋ง์ผํ ์:
๋ก๊ทธ ํ์ผ
Supervisord ํ๋ก์ธ์ค์ ํ๋ ๋ก๊ทธ ๊ฒฝ๋ก์ ๋๋ค. ์ด ์ต์ ์๋ ๋ค์์ด ํฌํจ๋ ์ ์์ต๋๋ค.
๊ฐ์น %(์ฌ๊ธฐ)s, ์ด๋ Supervisord ๊ตฌ์ฑ์ด ์๋ ๋๋ ํ ๋ฆฌ๋ก ํ์ฅ๋ฉ๋๋ค.
ํ์ผ์ ์ฐพ์์ต๋๋ค.
ํ๋ง: $CWD/supervisord.log
ํ์: ์๋.
๋์ : 3.0
logfile_maxbytes
ํ๋ ๋ก๊ทธ ํ์ผ์ด ์ฌ์ฉ๋๊ธฐ ์ ์ ์ฌ์ฉํ ์ ์๋ ์ต๋ ๋ฐ์ดํธ ์
ํ์ ๋จ("KB", "MB" ๋ฐ "GB"์ ๊ฐ์ ์ ๋ฏธ์ฌ ์น์๋ฅผ ๊ฐ์ ์ฌ์ฉํ ์ ์์). ์ธํธ
๋ฌด์ ํ ๋ก๊ทธ ํฌ๊ธฐ๋ฅผ ๋ํ๋ด๋ ค๋ฉด ์ด ๊ฐ์ 0์ผ๋ก ์ง์ ํฉ๋๋ค.
ํ๋ง: 50MB
ํ์: ์๋.
๋์ : 3.0
๋ก๊ทธ ํ์ผ_๋ฐฑ์
ํ๋ ๋ก๊ทธ ํ์ผ ํ์ ์ผ๋ก ์ธํด ๋ณด๊ดํ ๋ฐฑ์ ์์ ๋๋ค. ์ค์ ๋ ๊ฒฝ์ฐ
0์ผ๋ก ์ค์ ํ๋ฉด ๋ฐฑ์ ์ด ์ ์ง๋์ง ์์ต๋๋ค.
ํ๋ง: 10
ํ์: ์๋.
๋์ : 3.0
๋ก๊ทธ ๋ ๋ฒจ
Supervisord ํ๋ ๋ก๊ทธ์ ๊ธฐ๋ก๋๋ ๋ด์ฉ์ ์ง์ํ๋ ๋ก๊น ์์ค. ์ค ํ๋
์๊ณ, ์ค๋ฅ, ๊ฒฝ๊ณ , ์ ๋ณด, ๋๋ฒ๊ทธ, ๋๋ฌ๋ค๋ฐ ๋ธ๋๋. ๋ก๊ทธ ์์ค์์ ๋๋ฒ๊ทธ,
Supervisord ๋ก๊ทธ ํ์ผ์ ์์ ํ๋ก์ธ์ค์ stderr/stdout ์ถ๋ ฅ์ ๊ธฐ๋กํฉ๋๋ค.
๋ฐ ๋๋ฒ๊น ์ ์ ์ฉํ ํ๋ก์ธ์ค ์ํ ๋ณ๊ฒฝ์ ๋ํ ํ์ฅ๋ ์ ๋ณด ์ ๋ณด
์ ๋๋ก ์์๋์ง ์๋ ํ๋ก์ธ์ค. ์ฐธ์กฐ: activity_log_levels.
ํ๋ง: ์ ๋ณด
ํ์: ์๋.
๋์ : 3.0
PID ํ์ผ
Supervisord๊ฐ pid ํ์ผ์ ๋ณด๊ดํ๋ ์์น์ ๋๋ค. ์ด ์ต์ ์๋ ๋ค์์ด ํฌํจ๋ ์ ์์ต๋๋ค.
๊ฐ์น %(์ฌ๊ธฐ)s, ์ด๋ Supervisord ๊ตฌ์ฑ์ด ์๋ ๋๋ ํ ๋ฆฌ๋ก ํ์ฅ๋ฉ๋๋ค.
ํ์ผ์ ์ฐพ์์ต๋๋ค.
ํ๋ง: $CWD/supervisord.pid
ํ์: ์๋.
๋์ : 3.0
๋ง์คํฌ
๊ฐ๋ ์ ํ๋ก์ธ์ค์ umask์ ๋๋ค.
ํ๋ง: 022
ํ์: ์๋.
๋์ : 3.0
๋ ธ๋ฐ๋ชฌ
true์ธ ๊ฒฝ์ฐ supervisord๋ ๋ฐ๋ชฌํํ๋ ๋์ ํฌ๊ทธ๋ผ์ด๋์์ ์์๋ฉ๋๋ค.
ํ๋ง: ๊ฑฐ์ง
ํ์: ์๋.
๋์ : 3.0
๋ฏผํ
์ํผ๋ฐ์ด์ ๊ฐ ์ฌ์ฉ ๊ฐ๋ฅํด์ผ ํ๋ ์ต์ ํ์ผ ๋์คํฌ๋ฆฝํฐ ์
์ฑ๊ณต์ ์ผ๋ก ์์ํฉ๋๋ค. setrlimit์ ๋ํ ํธ์ถ์ ์ํํธ ๋ฐ
์ถฉ์กฑ์ํค๊ธฐ ์ํ ๊ฐ๋ ํ๋ก์ธ์ค์ ์๊ฒฉํ ํ๊ณ ๋ฏผํ. ํ๋ ํ๋๋
Supervisord๊ฐ ๋ฃจํธ๋ก ์คํ๋๋ฉด ๋ฐ์ํฉ๋๋ค. Supervisord๋ ํ์ผ ์ค๋ช ์๋ฅผ ์์ ๋กญ๊ฒ ์ฌ์ฉํ๊ณ ,
OS์์ ์ป์ ์ ์์ ๋ ์คํจ ๋ชจ๋๋ก ๋ค์ด๊ฐ๋ฏ๋ก ๋ค์์ด ์ ์ฉํฉ๋๋ค.
์คํ ์ค์ ๋ถ์กฑํ์ง ์๋๋ก ์ต์๊ฐ์ ์ง์ ํ ์ ์์ต๋๋ค.
์ด ์ต์ ์ ํ๋ก์ธ์ค๋น fd ์ ํ์ด ๋ฎ์ Solaris์์ ํนํ ์ ์ฉํฉ๋๋ค.
ํ๋ง.
ํ๋ง: 1024
ํ์: ์๋.
๋์ : 3.0
์ต์ํ๋ก์์
๊ฐ๋ ์ ์ ์ฌ์ฉํ ์ ์์ด์ผ ํ๋ ํ๋ก์ธ์ค ์ค๋ช ์์ ์ต์ ์
์ฑ๊ณต์ ์ผ๋ก ์์๋ฉ๋๋ค. ์ํํธ๋ฅผ ์ฌ๋ฆฌ๊ธฐ ์ํด setrlimit์ ๋ํ ํธ์ถ์ด ๋ง๋ค์ด์ง๋๋ค.
์ถฉ์กฑ์ํค๊ธฐ ์ํ ๊ฐ๋ ํ๋ก์ธ์ค์ ์๊ฒฉํ ํ๊ณ ์ต์ํ๋ก์์ . ํ๋ ํ๋๋
Supervisord๊ฐ ๋ฃจํธ๋ก ์คํ๋๋ ๊ฒฝ์ฐ์๋ง ๋ฐ์ํฉ๋๋ค. ๊ฐ๋ ์๋ ์คํจ ๋ชจ๋์ ๋ค์ด๊ฐ ๊ฒ์ ๋๋ค
OS์ ํ๋ก์ธ์ค ์ค๋ช ์๊ฐ ๋ถ์กฑํ ๋
ํ๋ก์ธ์ค ์ค๋ช ์๋ ๋ค์์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๊ฐ๋ ์ ์์.
ํ๋ง: 200
ํ์: ์๋.
๋์ : 3.0
์ ๋ฆฌ ์์
๊ฐ๋ ์๊ฐ ๊ธฐ์กด ํญ๋ชฉ์ ์ง์ฐ์ง ๋ชปํ๋๋ก ๋ฐฉ์ง AUTO ์์ ์ ์์ ๋ก๊ทธ ํ์ผ.
๋๋ฒ๊น ์ ์ ์ฉํฉ๋๋ค.
ํ๋ง: ๊ฑฐ์ง
ํ์: ์๋.
๋์ : 3.0
์์ ๋ก๊ทธ ๋๋ ํ ๋ฆฌ
์ ์ฌ์ฉ๋ ๋๋ ํ ๋ฆฌ AUTO ์์ ๋ก๊ทธ ํ์ผ. ์ด ์ต์ ์๋ ๊ฐ์ด ํฌํจ๋ ์ ์์ต๋๋ค.
%(์ฌ๊ธฐ)s, ์ด๋ ๋ค์์ด ์๋ ๋๋ ํ ๋ฆฌ๋ก ํ์ฅ๋ฉ๋๋ค. ๊ฐ๋ ์ ๊ตฌ์ฑ ํ์ผ
๋ฐ๊ฒฌ.
ํ๋ง: ํ์ด์ฌ์ ๊ฐ ์์ํ์ผ.get_tempdir()
ํ์: ์๋.
๋์ : 3.0
์ฌ์ฉ์
์ง์ ๊ฐ๋ ์ ์ด๋ค ์์ ์ ์ํํ๊ธฐ ์ ์ ์ฌ์ฉ์๋ฅผ ์ด UNIX ์ฌ์ฉ์ ๊ณ์ ์ผ๋ก ์ ํํ๋ ค๋ฉด
์๋ฏธ์๋ ์ฒ๋ฆฌ. ์ฌ์ฉ์๋ ๋ค์ ๊ฒฝ์ฐ์๋ง ์ ํํ ์ ์์ต๋๋ค. ๊ฐ๋ ์ ๋ก ์์๋ฉ๋๋ค.
๋ฃจํธ ์ฌ์ฉ์. ๋ง์ฝ์ ๊ฐ๋ ์ ์ฌ์ฉ์๋ฅผ ์ ํํ ์ ์์ต๋๋ค. ๊ณ์ ์งํ๋์ง๋ง ๋ค์์ ์์ฑํฉ๋๋ค.
๋ก๊ทธ ๋ฉ์์ง ์๊ณ ๊ถํ์ ์ญ์ ํ ์ ์๋ค๋ ์์ค์ ๋๋ค.
ํ๋ง: ์ฌ์ฉ์๋ฅผ ์ ํํ์ง ๋ง์ญ์์ค
ํ์: ์๋.
๋์ : 3.0
์๋ฐฐ ๊ท์น์
์ธ์ ๋ค ๊ณต์ ํ๋งค์ ์ธ ๊ฐ๋ ์ ๋ฐ๋ชฌํํ๋ฉด ์ด ๋๋ ํ ๋ฆฌ๋ก ์ ํํฉ๋๋ค. ์ด ์ต์ ์๋ ๋ค์์ด ํฌํจ๋ ์ ์์ต๋๋ค.
๊ฐ์น %(์ฌ๊ธฐ)s, ์ด๋ ๋ค์์ด ์๋ ๋๋ ํ ๋ฆฌ๋ก ํ์ฅ๋ฉ๋๋ค. ๊ฐ๋ ์ ๊ตฌ์ฑ
ํ์ผ์ ์ฐพ์์ต๋๋ค.
ํ๋ง: CDํ์ง ๋ง์ญ์์ค
ํ์: ์๋.
๋์ : 3.0
์คํธ๋ฆฝ_์์
์์ ๋ก๊ทธ ํ์ผ์์ ๋ชจ๋ ANSI ์ด์ค์ผ์ดํ ์ํ์ค๋ฅผ ์ ๊ฑฐํฉ๋๋ค.
ํ๋ง: ๊ฑฐ์ง
ํ์: ์๋.
๋์ : 3.0
ํ๊ฒฝ
ํ์์ ํค/๊ฐ ์ ๋ชฉ๋ก ํค = "๋ฐ", ํค2 = "๋ฐ2" ์ ๋ฐฐ์น๋ ๊ฒ์ ๋๋ค.
๊ฐ๋ ์ ํ๋ก์ธ์ค 'ํ๊ฒฝ(๊ฒฐ๊ณผ์ ์ผ๋ก ๋ชจ๋ ์์ ํ๋ก์ธ์ค')
ํ๊ฒฝ). ์ด ์ต์ ์๋ ๊ฐ์ด ํฌํจ๋ ์ ์์ต๋๋ค. %(์ฌ๊ธฐ)s๋ก ํ์ฅ๋ฉ๋๋ค.
Supervisord ๊ตฌ์ฑ ํ์ผ์ด ๋ฐ๊ฒฌ๋ ๋๋ ํ ๋ฆฌ์ ๋๋ค. ๋ค์์ ํฌํจํ๋ ๊ฐ
์์ซ์๊ฐ ์๋ ๋ฌธ์๋ ๋ฐ์ดํ๋ก ๋ฌถ์ด์ผ ํฉ๋๋ค(์: ํค = "๋ฐ:123", ํค2 = "๋ฐ,456").
๊ทธ๋ ์ง ์์ผ๋ฉด ๊ฐ์ ์ธ์ฉํ๋ ๊ฒ์ ์ ํ ์ฌํญ์ด์ง๋ง ๊ถ์ฅ๋ฉ๋๋ค. ํผ์ผํธ๋ฅผ ํ์ถํ๋ ค๋ฉด
๋ฌธ์, ๋จ์ํ ๋ ๊ฐ๋ฅผ ์ฌ์ฉํฉ๋๋ค. (์: URI="/์ฒซ ๋ฒ์งธ%%20์ด๋ฆ") ์ฃผ์ ์ฌํญ ๊ทธ ํ์ ํ๋ก์ธ์ค๋
์์ํ๋ ๋ฐ ์ฌ์ฉ๋ ์ ธ์ ํ๊ฒฝ ๋ณ์๋ฅผ ์์ํฉ๋๋ค. ๊ฐ๋ ์ ์ ์ธํ๊ณ
์ฌ๊ธฐ์ ํ๋ก๊ทธ๋จ ๋ด์์ ์ฌ์ ์๋ ๊ฒ๋ค ํ๊ฒฝ ์ต์ . ๋ณด๋ค
ํ์ ํ๋ก์ธ์ค_ํ๊ฒฝ.
ํ๋ง: ๊ฐ ์์
ํ์: ์๋.
๋์ : 3.0
์๋ณ์
RPC ์ธํฐํ์ด์ค์์ ์ฌ์ฉํ๋ ์ด ๊ฐ๋ ์ ํ๋ก์ธ์ค์ ์๋ณ์ ๋ฌธ์์ด์ ๋๋ค.
ํ๋ง: ๊ฐ๋ ์
ํ์: ์๋.
๋์ : 3.0
[๊ฐ๋ ๊ด] ์น์ ์์
[๊ฐ๋ ๊ด]
๋ก๊ทธ ํ์ผ = /tmp/supervisord.log
logfile_maxbytes = 50MB
๋ก๊ทธํ์ผ_๋ฐฑ์ =10
๋ก๊ทธ ๋ ๋ฒจ = ์ ๋ณด
pidfile = /tmp/supervisord.pid
๋ ธ๋ฐ๋ชฌ = ๊ฑฐ์ง
minfd = 1024
์ต์ ํ๋ก์ธ์ค = 200
์ ๋ง์คํฌ = 022
์ฌ์ฉ์ = ํฌ๋ฆฌ์ค
์๋ณ์ = ๊ฐ๋ ์
๋๋ ํ ๋ฆฌ = / TMP
nocleanup = ์ฌ์ค
์์ ๋ก๊ทธ ๋๋ ํ ๋ฆฌ = / TMP
strip_ansi = ๊ฑฐ์ง
ํ๊ฒฝ = KEY1="๊ฐ1", ํค2="๊ฐ2"
[๊ฐ๋ ๊ด] ์น์ ์ค์
๊ตฌ์ฑ ํ์ผ์๋ ์ ๋ํ ์ค์ ์ด ํฌํจ๋ ์ ์์ต๋๋ค. ๊ฐ๋ ์ctl ๋ํ์ ์ ธ
ํ๋ก๊ทธ๋จ. ์ด๋ฌํ ์ต์ ์ ์๋์ ๋์ด๋์ด ์์ต๋๋ค.
[๊ฐ๋ ๊ด] ์น์ ๋ง์ผํ ์:
์๋ฒ URL
Supervisord ์๋ฒ์ ์ก์ธ์คํ๋ ๋ฐ ์ฌ์ฉํด์ผ ํ๋ URL, ์:
http://localhost: 9001. UNIX ๋๋ฉ์ธ ์์ผ์ ๊ฒฝ์ฐ ๋ค์์ ์ฌ์ฉํ์ญ์์ค.
์ ๋์ค:///absolute/path/to/file.sock.
ํ๋ง: http://localhost: 9001
ํ์: ์๋.
๋์ : 3.0
์ฌ์ฉ์ ์ด๋ฆ
์ธ์ฆ์ ์ฌ์ฉํ๊ธฐ ์ํด ๊ฐ๋ ์ ์๋ฒ์ ์ ๋ฌํ ์ฌ์ฉ์ ์ด๋ฆ์ ๋๋ค. ์ด๊ฒ์
๊ฐ๋ค ์ฌ์ฉ์ ์ด๋ฆ ํฌํธ ๋๋ UNIX์ ๋ํ ๊ฐ๋ ์ ์๋ฒ ๊ตฌ์ฑ์์
์ก์ธ์คํ๋ ค๋ ๋๋ฉ์ธ ์์ผ.
ํ๋ง: ์ฌ์ฉ์ ์ด๋ฆ ์์
ํ์: ์๋.
๋์ : 3.0
์ํธ
์ธ์ฆ์ ์ฌ์ฉํ๊ธฐ ์ํด ๊ฐ๋ ์ ์๋ฒ์ ์ ๋ฌํ ์ํธ์ ๋๋ค. ์ด๊ฒ์
์ ์ผ๋ฐ ํ ์คํธ ๋ฒ์ ์ด์ด์ผ ํฉ๋๋ค. ์ํธ ์ ๋ํ ๊ฐ๋ ์ ์๋ฒ ๊ตฌ์ฑ์์
์ก์ธ์คํ๋ ค๋ ํฌํธ ๋๋ UNIX ๋๋ฉ์ธ ์์ผ. ์ด ๊ฐ์ ๋ค์๊ณผ ๊ฐ์ด ์ ๋ฌํ ์ ์์ต๋๋ค.
SHA ํด์. ์ด ํ์ผ์ ์ง์ ๋ ๋ค๋ฅธ ๋น๋ฐ๋ฒํธ์ ๋ฌ๋ฆฌ ๋ค์ ์์น์ ์ ๊ณตํด์ผ ํฉ๋๋ค.
๋ช ํํ ๋ฌธ๊ตฌ.
ํ๋ง: ๋น๋ฐ๋ฒํธ ์์
ํ์: ์๋.
๋์ : 3.0
์ ์ํ
Supervisorctl ํ๋กฌํํธ๋ก ์ฌ์ฉ๋๋ ๋ฌธ์์ด์ ๋๋ค.
ํ๋ง: ๊ฐ๋ ์
ํ์: ์๋.
๋์ : 3.0
๊ธฐ๋ก_ํ์ผ
๋ก ์ฌ์ฉํ ๊ฒฝ๋ก ์์ฑํ Readline ์๊ตฌ ํ์คํ ๋ฆฌ ํ์ผ. ์ด ๊ธฐ๋ฅ์ ํ์ฑํํ๋ฉด
๊ฒฝ๋ก๋ฅผ ์ ํํ๋ฉด supervisorctl ๋ช ๋ น์ด ํ์ผ์ ๋ณด๊ด๋๋ฉฐ ๋ค์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋ง์ง๋ง supervisorctl์์ ์ํํ ๋ช ๋ น์ ํธ์ถํ๋ readline(์: ํ์ดํ ์๋ก)
์ธ์ .
ํ๋ง: ํ์ผ ์์
ํ์: ์๋.
๋์ : 3.0a5
[๊ฐ๋ ๊ด] ์น์ ์์
[๊ฐ๋ ๊ด]
์๋ฒ URL = ์ ๋์ค:///tmp/supervisor.sock
์ฌ์ฉ์ ์ด๋ฆ = ํฌ๋ฆฌ์ค
๋น๋ฐ๋ฒํธ = 123
ํ๋กฌํํธ = mysupervisor
[ํ๋ก๊ทธ๋จ:x] ์น์ ์ค์
๊ตฌ์ฑ ํ์ผ์๋ ํ๋ ์ด์์ ํ๋ก๊ทธ๋จ ๊ฐ๋ ์ ์ํ ์น์
์ด๋ค ํ๋ก๊ทธ๋จ์ ์์ํ๊ณ ์ ์ดํด์ผ ํ๋์ง ์ ์ ์์ต๋๋ค. ํค๋ ๊ฐ์ ๋ณตํฉ ๊ฐ์ ๋๋ค.
"ํ๋ก๊ทธ๋จ"์ด๋ผ๋ ๋จ์ด์ ์ฝ๋ก , ํ๋ก๊ทธ๋จ ์ด๋ฆ์ด ์ฐจ๋ก๋ก ๋์ต๋๋ค. ํค๋
์ ๊ฐ์น [ํ๋ก๊ทธ๋จ:foo] "foo"๋ผ๋ ์ด๋ฆ์ ํ๋ก๊ทธ๋จ์ ์ค๋ช ํฉ๋๋ค. ์ด๋ฆ์ด ์ฌ์ฉ๋ฉ๋๋ค
์ด ๊ฒฐ๊ณผ๋ก ์์ฑ๋๋ ํ๋ก์ธ์ค๋ฅผ ์ ์ดํ๋ โโํด๋ผ์ด์ธํธ ์์ฉ ํ๋ก๊ทธ๋จ ๋ด์์
๊ตฌ์ฑ. ์์ฑํ๋ ๊ฒ์ ์ค๋ฅ์ ๋๋ค. ํ๋ก๊ทธ๋จ ์ด๋ฆ์ด ์๋ ์น์ . NS
์ด๋ฆ์ ์ฝ๋ก ๋ฌธ์๋ ๋๊ดํธ ๋ฌธ์๋ฅผ ํฌํจํ ์ ์์ต๋๋ค. ์ด๋ฆ์ ๊ฐ์
์ ๋ํ ๊ฐ์ผ๋ก ์ฌ์ฉ %(ํ๋ก๊ทธ๋จ ์ด๋ฆ)s ๋ค๋ฅธ ๊ฐ ๋ด์์ ๋ฌธ์์ด ํํ์ ํ์ฅ
์ง์ ๋ ๊ณณ.
์๋ฆผ:
A [ํ๋ก๊ทธ๋จ:x] ์น์ ์ ์ค์ ๋ก ๊ฐ๋ ์์๊ฒ "๋์ข ํ๋ก์ธ์ค ๊ทธ๋ฃน"์ ๋ํ๋ ๋๋ค.
(3.0 ๊ธฐ์ค). ๊ทธ๋ฃน์ ๊ตฌ์ฑ์์ ๋ค์ ์กฐํฉ์ผ๋ก ์ ์๋ฉ๋๋ค. ์ซ์ ํ๋ก์ธ์
and ํ๋ก์ธ์ค ์ด๋ฆ ๊ตฌ์ฑ์ ๋งค๊ฐ๋ณ์. ๊ธฐ๋ณธ์ ์ผ๋ก numprocs ๋ฐ
process_name์ ๊ธฐ๋ณธ๊ฐ์์ ๋ณ๊ฒฝ๋์ง ์์ ์ฑ๋ก ๋จ์ ์์ต๋๋ค. ๊ทธ๋ฃน์ ๋ค์์ผ๋ก ํ์๋ฉ๋๋ค.
[ํ๋ก๊ทธ๋จ:x] ๋ช ๋ช ๋ฉ๋๋ค x ์ด๋ฆ์ด ์ง์ ๋ ๋จ์ผ ํ๋ก์ธ์ค๊ฐ ์์ต๋๋ค. x ๊ทธ๊ฒ์. ์ด
์ด์ ๊ฐ๋ ์ ๋ฆด๋ฆฌ์ค์ ์ฝ๊ฐ์ ํ์ ํธํ์ฑ์ ์ ๊ณตํฉ๋๋ค.
ํ๋ก๊ทธ๋จ ์น์ ์ ๋์ข ํ๋ก์ธ์ค ๊ทธ๋ฃน ์ ์๋ก ์ทจ๊ธํ์ง ๋ง์ญ์์ค.
ํ์ง๋ง ์๋ฅผ ๋ค์ด [ํ๋ก๊ทธ๋จ:foo] ์น์ ์ซ์ ํ๋ก์ธ์ 3์
ํ๋ก์ธ์ค ์ด๋ฆ ํํ %(ํ๋ก๊ทธ๋จ ์ด๋ฆ)s_%(ํ๋ก์ธ์ค ๋ฒํธ)02d, "foo" ๊ทธ๋ฃน์
๋ช ๋ช ๋ ์ธ ๊ฐ์ง ํ๋ก์ธ์ค๋ฅผ ํฌํจํฉ๋๋ค. foo_00, foo_01๋ฐ foo_02. ์ด๋ฅผ ํตํด ๋ค์์ด ๊ฐ๋ฅํด์ง๋๋ค.
ํ๋๋ฅผ ์ฌ์ฉํ์ฌ ๋งค์ฐ ์ ์ฌํ ์ฌ๋ฌ ํ๋ก์ธ์ค๋ฅผ ์์ํฉ๋๋ค. [ํ๋ก๊ทธ๋จ:x] ๋ถ๋ถ. ๋ชจ๋
๋ก๊ทธ ํ์ผ ์ด๋ฆ, ๋ชจ๋ ํ๊ฒฝ ๋ฌธ์์ด ๋ฐ ํ๋ก๊ทธ๋จ ๋ช ๋ น๋ ํฌํจ๋ ์ ์์ต๋๋ค.
์ ์ฌํ Python ๋ฌธ์์ด ํํ์, ๊ฐ๊ฐ์ ์ฝ๊ฐ ๋ค๋ฅธ ๋งค๊ฐ๋ณ์ ์ ๋ฌ
ํ๋ก์ธ์ค.
[ํ๋ก๊ทธ๋จ:x] ์น์ ๋ง์ผํ ์:
๋ช ๋ น
์ด ํ๋ก๊ทธ๋จ์ด ์์๋ ๋ ์คํ๋ ๋ช ๋ น์ ๋๋ค. ๋ช ๋ น์ ๋ค์ ์ค ํ๋์ผ ์ ์์ต๋๋ค.
์ ๋(์: /๊ฒฝ๋ก/๋์/ํ๋ก๊ทธ๋จ ์ด๋ฆ) ๋๋ ์น์ฒ(์: ํ๋ก๊ทธ๋จ ์ด๋ฆ). ๋ง์ฝ ๊ทธ๋ ๋ค๋ฉด
์น์ฒ, ๊ฐ๋ ์์ ํ๊ฒฝ $ PATH ์คํ ํ์ผ์ ๊ฒ์ํฉ๋๋ค.
ํ๋ก๊ทธ๋จ์ ์ธ์๋ฅผ ๋ฐ์๋ค์ผ ์ ์์ต๋๋ค. /๊ฒฝ๋ก/๋์/ํ๋ก๊ทธ๋จ ํธ ๋ฐ. ๋ช ๋ น์ค์ ๋ค์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
ํ๋ก๊ทธ๋จ์ ์ ๋ฌํ ๊ณต๋ฐฑ์ด ์๋ ๊ทธ๋ฃน ์ธ์์ ๋ํ ํฐ ๋ฐ์ดํ, ์
/๊ฒฝ๋ก/๋์/ํ๋ก๊ทธ๋จ/์ด๋ฆ -p "ํ ์ ์ง". ์ ๊ฐ์ ์ ์ํ์ญ์์ค. ๋ช ๋ น ํ์ด์ฌ์ ํฌํจํ ์ ์์ต๋๋ค
๋ฌธ์์ด ํํ์, ์ /๊ฒฝ๋ก/๋์/ํ๋ก๊ทธ๋จ ์ด๋ฆ --ํฌํธ=80%(process_num)02d ํ์ฅํ ์ ์์ต๋๋ค
์ /๊ฒฝ๋ก/๋์/ํ๋ก๊ทธ๋จ ์ด๋ฆ --ํฌํธ=8000 ๋ฐํ์์. ๋ฌธ์์ด ํํ์์ด ํ๊ฐ๋ฉ๋๋ค.
ํค๋ฅผ ํฌํจํ๋ ์ฌ์ ์ ๋ํด ๊ทธ๋ฃน ์ด๋ฆ, ํธ์คํธ ๋ ธ๋ ์ด๋ฆ, ํ๋ก์ธ์ค ๋ฒํธ,
ํ๋ก๊ทธ๋จ _ ์ด๋ฆ, LINK (Supervisord ๊ตฌ์ฑ ํ์ผ์ ๋๋ ํ ๋ฆฌ) ๋ฐ ๋ชจ๋
์ ๋์ฌ๊ฐ ๋ถ์ ๊ด๋ฆฌ์์ ํ๊ฒฝ ๋ณ์ ํ๊ฒฝ_. ์ ์ด ํ๋ก๊ทธ๋จ์
์์ ์ ๋ฐ๋ชฌ์ด ์๋๋๋ค. ๊ฐ๋ ์๋ ์์ ์ ๋ฐ๋ชฌํ์ ๋ํ ์ฑ ์์ด ์๋ค๊ณ ๊ฐ์ ํฉ๋๋ค.
ํ์ ํ๋ก์ธ์ค(nondaemonizing_of_subprocesses ์ฐธ์กฐ).
ํ๋ง: ๊ธฐ๋ณธ๊ฐ์ด ์์ต๋๋ค.
ํ์: ์.
๋์ : 3.0
ํ๋ก์ธ์ค ์ด๋ฆ
์ด์ ๋ํ ๊ฐ๋ ์ ํ๋ก์ธ์ค ์ด๋ฆ์ ๊ตฌ์ฑํ๋ ๋ฐ ์ฌ์ฉ๋๋ Python ๋ฌธ์์ด ํํ์
ํ๋ก์ธ์ค. ๋ณ๊ฒฝํ์ง ์๋ ํ ์ผ๋ฐ์ ์ผ๋ก ์ด๊ฒ์ ์ค์ ํ๋ ๊ฒ์ ๋ํด ๊ฑฑ์ ํ ํ์๊ฐ ์์ต๋๋ค.
์ซ์ ํ๋ก์ธ์. ๋ฌธ์์ด ํํ์์ ๋ค์์ ํฌํจํ๋ ์ฌ์ ์ ๋ํด ํ๊ฐ๋ฉ๋๋ค.
๊ทธ๋ฃน ์ด๋ฆ, ํธ์คํธ ๋ ธ๋ ์ด๋ฆ, ํ๋ก์ธ์ค ๋ฒํธ, ํ๋ก๊ทธ๋จ _ ์ด๋ฆ๋ฐ LINK (๋๋ ํ ๋ฆฌ
Supervisord ๊ตฌ์ฑ ํ์ผ).
ํ๋ง: %(ํ๋ก๊ทธ๋จ ์ด๋ฆ)s
ํ์: ์๋.
๋์ : 3.0
์ซ์ ํ๋ก์ธ์
Supervisor๋ numprocs์ ์ํด ๋ช ๋ช ๋ ๋งํผ ์ด ํ๋ก๊ทธ๋จ์ ์ธ์คํด์ค๋ฅผ ์์ํฉ๋๋ค. ๋ฉ๋ชจ
numprocs > 1์ด๋ฉด ํ๋ก์ธ์ค ์ด๋ฆ ํํ์์๋ ๋ค์์ด ํฌํจ๋์ด์ผ ํฉ๋๋ค. %(process_num)s (๋๋
๋ค์์ ํฌํจํ๋ ๋ค๋ฅธ ์ ํจํ Python ๋ฌธ์์ด ํํ์ ํ๋ก์ธ์ค ๋ฒํธ) ๊ทธ ์์.
ํ๋ง: 1
ํ์: ์๋.
๋์ : 3.0
numprocs_start
์ซ์๋ฅผ ๊ณ์ฐํ๋ ๋ฐ ์ฌ์ฉ๋๋ ์ ์ ์คํ์ ์ซ์ ํ๋ก์ธ์ ์์๋ฉ๋๋ค.
ํ๋ง: 0
ํ์: ์๋.
๋์ : 3.0
์ฐ์
์์ ๋ฐ ์ข ๋ฃ ์์์์ ํ๋ก๊ทธ๋จ์ ์๋์ ์ฐ์ ์์์ ๋๋ค. ๋ฎ์ถ๋ค
์ฐ์ ์์๋ ์์ํ ๋ ๊ฐ์ฅ ๋จผ์ ์์ํ๊ณ ๋ง์ง๋ง์ผ๋ก ์ข ๋ฃ๋๋ ํ๋ก๊ทธ๋จ์ ๋ํ๋ ๋๋ค.
์งํฉ ๋ช ๋ น์ ๋ค์ํ ํด๋ผ์ด์ธํธ์์ ์ฌ์ฉ๋ฉ๋๋ค(์: "๋ชจ๋ ์์"/"๋ชจ๋ ์ค์ง"). ๋ ๋์
์ฐ์ ์์๋ ๋ง์ง๋ง์ผ๋ก ์์ํ๊ณ ๋จผ์ ์ข ๋ฃ๋๋ ํ๋ก๊ทธ๋จ์ ๋ํ๋ ๋๋ค.
ํ๋ง: 999
ํ์: ์๋.
๋์ : 3.0
์๋ ์์
true์ธ ๊ฒฝ์ฐ ์ด ํ๋ก๊ทธ๋จ์ supervisord๊ฐ ์์๋ ๋ ์๋์ผ๋ก ์์๋ฉ๋๋ค.
ํ๋ง: ์ง์ค
ํ์: ์๋.
๋์ : 3.0
์์ ์ด
ํ๋ก๊ทธ๋จ์ด ์์๋ ํ ์คํ์ ์ ์งํ๋ ๋ฐ ํ์ํ ์ด ์๊ฐ(์ด)
์์์ด ์ฑ๊ณตํ ๊ฒ์ผ๋ก ๊ฐ์ฃผํฉ๋๋ค(ํ๋ก์ธ์ค๋ฅผ ์์ ์ํ
๋ฌ๋ฆฌ๋ ์ํ). ๋ก ์ค์ 0 ํ๋ก๊ทธ๋จ์ ๊ณ์ ์คํํ ํ์๊ฐ ์์์ ๋ํ๋ด๊ธฐ ์ํด
ํน์ ์๊ฐ.
์๋ฆผ:
ํ๋ก์ธ์ค๊ฐ "์์๋" ์ข ๋ฃ ์ฝ๋๋ก ์ข ๋ฃ๋๋๋ผ๋(์ฐธ์กฐ ์ข ๋ฃ ์ฝ๋), ์์
ํ๋ก์ธ์ค๊ฐ ๋ค์๋ณด๋ค ๋นจ๋ฆฌ ์ข ๋ฃ๋๋ฉด ์ฌ์ ํ ์คํจ๋ก ๊ฐ์ฃผ๋ฉ๋๋ค. ์์ ์ด.
ํ๋ง: 1
ํ์: ์๋.
๋์ : 3.0
์ฌ์๋
์ฐ์ ์คํจ ์๋ ํ์ ๊ฐ๋ ์ ์๋ ํ ๋ ํ์ฉํฉ๋๋ค
ํฌ๊ธฐํ๊ณ ํ๋ก์ธ์ค๋ฅผ ์์ํ๊ธฐ ์ ์ ํ๋ก๊ทธ๋จ์ ์์ํ์ญ์์ค. ์น๋ช ์ ์ธ ์ํ. ๋ณด๋ค
์ค๋ช ์ ์ํ process_states ์น๋ช ์ ์ธ (์ฃผ).
ํ๋ง: 3
ํ์: ์๋.
๋์ : 3.0
์๋ ์ฌ์์
๋ค์์ ์ง์ ํฉ๋๋ค. ๊ฐ๋ ์ ํ๋ก์ธ์ค๊ฐ ์ข ๋ฃ๋๋ฉด ์๋์ผ๋ก ํ๋ก์ธ์ค๋ฅผ ๋ค์ ์์ํด์ผ ํฉ๋๋ค.
์ธ๊ฐ์ ๋ฌ๋ฆฌ๋ ์ํ. ๋ค์ ์ค ํ๋์ผ ์ ์์ต๋๋ค. ๊ทธ๋ฆ๋, ์๊ธฐ์น ์์๋ฐ ์ฐธ๋. ๋ฉด ๊ทธ๋ฆ๋, ๊ณผ์
์๋ ์ฌ์์๋์ง ์์ต๋๋ค. ๋ง์ฝ์ ์๊ธฐ์น ์์, ํ๋ก์ธ์ค๊ฐ ๋ค์ ์์๋ ๋
์ด ํ๋ก๊ทธ๋จ๊ณผ ๊ด๋ จ๋ ์ข ๋ฃ ์ฝ๋ ์ค ํ๋๊ฐ ์๋ ์ข ๋ฃ ์ฝ๋๋ก ํ๋ก๊ทธ๋จ์ด ์ข ๋ฃ๋ฉ๋๋ค.
ํ๋ก์ธ์ค' ๊ตฌ์ฑ(์ฐธ์กฐ ์ข ๋ฃ ์ฝ๋). ๋ง์ฝ ์ฐธ๋, ํ๋ก์ธ์ค๋ ๋ฌด์กฐ๊ฑด
์ข ๋ฃ ์ฝ๋์ ๊ด๊ณ์์ด ์ข ๋ฃ๋ ๋ ๋ค์ ์์๋ฉ๋๋ค.
์๋ฆผ:
์๋ ์ฌ์์ ์ฌ๋ถ๋ฅผ ์ ์ด ๊ฐ๋ ์ ํ๋ก๊ทธ๋จ์ด ์ข ๋ฃ๋๋ฉด ์๋ ์ฌ์์
์ฑ๊ณต์ ์ผ๋ก ์์๋ ํ(ํ๋ก์ธ์ค๋ ๋ฌ๋ฆฌ๋ ์ํ).
๊ฐ๋ ์ ํ๋ก์ธ์ค๊ฐ ์์๋ ๋ ๋ค๋ฅธ ๋ค์ ์์ ๋ฉ์ปค๋์ฆ์ด ์์ต๋๋ค.
(ํ๋ก์ธ์ค๋ ์์ ์ํ). ํ๋ก์ธ์ค ์์ ์ค ์ฌ์๋๋
์ํด ์ ์ด ์์ ์ด and ์ฌ์๋.
ํ๋ง: ์์์น ๋ชปํ
ํ์: ์๋.
๋์ : 3.0
์ข ๋ฃ ์ฝ๋
๋ค์๊ณผ ํจ๊ป ์ฌ์ฉ๋๋ ์ด ํ๋ก๊ทธ๋จ์ "์์" ์ข ๋ฃ ์ฝ๋ ๋ชฉ๋ก ์๋ ์ฌ์์. ๊ฒฝ์ฐ
์๋ ์ฌ์์ ๋งค๊ฐ ๋ณ์๊ฐ๋ก ์ค์ ๋์์ต๋๋ค ์๊ธฐ์น ์์, ๊ทธ๋ฆฌ๊ณ ํ๋ก์ธ์ค๋ ๋ค์๊ณผ ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก ์ข ๋ฃ๋ฉ๋๋ค.
๊ฐ๋ ์ ์ค์ง ์์ฒญ์ ๊ฒฐ๊ณผ๋ก, ๊ฐ๋ ์ ๋ค์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ ํ๋ก์ธ์ค๋ฅผ ๋ค์ ์์ํฉ๋๋ค.
์ด ๋ชฉ๋ก์ ์ ์๋์ง ์์ ์ข ๋ฃ ์ฝ๋๋ก ์ข ๋ฃ๋ฉ๋๋ค.
ํ๋ง: 0,2
ํ์: ์๋.
๋์ : 3.0
์ ์ง ์ ํธ
์ค์ง๊ฐ ์์ฒญ๋ ๋ ํ๋ก๊ทธ๋จ์ ์ข ๋ฃํ๋ ๋ฐ ์ฌ์ฉ๋๋ ์ ํธ์ ๋๋ค. ์ด๊ฒ์ TERM ์ค ํ๋์ผ ์ ์์ต๋๋ค.
HUP, INT, QUIT, KILL, USR1 ๋๋ USR2.
ํ๋ง: ๊ธฐ๊ฐ
ํ์: ์๋.
๋์ : 3.0
stopwaitsecs
OS๊ฐ SIGCHILD๋ฅผ ๋ฐํํ ๋๊น์ง ๊ธฐ๋ค๋ฆฌ๋ ์๊ฐ(์ด) ๊ฐ๋ ์ ํ
ํ๋ก๊ทธ๋จ์ด ์ ์ง ์ ํธ๋ฅผ ๋ณด๋์ต๋๋ค. ์ด ์๊ฐ(์ด)์ด ๊ฒฝ๊ณผํ๊ธฐ ์ ์
๊ฐ๋ ์ ํ๋ก์ธ์ค์์ SIGCHILD๋ฅผ ์์ ํ๊ณ , ๊ฐ๋ ์ ๊ทธ๊ฒ์ ์ฃฝ์ด๋ ค๊ณ ํ ๊ฒ์ด๋ค
๋ง์ง๋ง SIGKILL๊ณผ ํจ๊ป.
ํ๋ง: 10
ํ์: ์๋.
๋์ : 3.0
์ ์ง ๊ทธ๋ฃน
true์ธ ๊ฒฝ์ฐ ํ๋๊ทธ๋ ์ํผ๋ฐ์ด์ ๊ฐ ์ ์ฒด ํ๋ก์ธ์ค ๊ทธ๋ฃน์ ์ค์ง ์ ํธ๋ฅผ ๋ณด๋ด๋๋ก ํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์์ํ๋ค ํฌ๋ผ์ค๊ทธ๋ฃน ์ฌ์ค์ด๋ค. ์ด๊ฒ์ ๋๋ฒ๊ทธ์ Flask์ ๊ฐ์ ํ๋ก๊ทธ๋จ์ ์ ์ฉํฉ๋๋ค.
์์์๊ฒ ์ ์ง ์ ํธ๋ฅผ ์ ํํ์ง ์๊ณ ๊ณ ์๋ก ๋จ๊ฒจ๋๋ ๋ชจ๋์ ๋๋ค.
ํ๋ง: ๊ฑฐ์ง
ํ์: ์๋.
๋์ : 3.0b1
ํฌ๋ผ์ค๊ทธ๋ฃน
์ฐธ์ด๋ฉด ํ๋ก๊ทธ๋จ์ ์ข ๋ฃํ๊ธฐ ์ํด SIGKILL์ ๋ณด๋ด๋ ค๊ณ ํ ๋
๋์ ์ ์ฒด ํ๋ก์ธ์ค ๊ทธ๋ฃน์ด ์์์ ๋๋ณด๋ ๋ฐ ์ ์ฉํฉ๋๋ค.
์ฌ์ฉํ๋ ํ์ด์ฌ ํ๋ก๊ทธ๋จ ๋ฉํฐ ํ๋ก์ธ์ฑ.
ํ๋ง: ๊ฑฐ์ง
ํ์: ์๋.
๋์ : 3.0a11
์ฌ์ฉ์
์ง์ ๊ฐ๋ ์ ์ด UNIX ์ฌ์ฉ์ ๊ณ์ ์ ์คํํ๋ ๊ณ์ ์ผ๋ก ์ฌ์ฉํ๋ ค๋ฉด
ํ๋ก๊ทธ๋จ. ์ฌ์ฉ์๋ ๋ค์ ๊ฒฝ์ฐ์๋ง ์ ํํ ์ ์์ต๋๋ค. ๊ฐ๋ ์ ๋ฃจํธ ์ฌ์ฉ์๋ก ์คํ๋ฉ๋๋ค. ๋ง์ฝ์
๊ฐ๋ ์ ์ง์ ๋ ์ฌ์ฉ์๋ก ์ ํํ ์ ์์ต๋๋ค. ํ๋ก๊ทธ๋จ์ด ์์๋์ง ์์ต๋๋ค.
์๋ฆผ:
์ฌ์ฉ์๋ ๋ค์์ ์ฌ์ฉํ์ฌ ๋ณ๊ฒฝ๋ฉ๋๋ค. setuid ์ค์ง. ์ด๊ฒ์ ๋ก๊ทธ์ธ ์ ธ์ ์์ํ์ง ์์ผ๋ฉฐ
๋ค์๊ณผ ๊ฐ์ ํ๊ฒฝ ๋ณ์๋ฅผ ๋ณ๊ฒฝํ์ง ์์ต๋๋ค. USER or ํ. ์ฐธ์กฐ
์์ธํ ๋ด์ฉ์ subprocess_environment๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
ํ๋ง: ์ฌ์ฉ์๋ฅผ ์ ํํ์ง ๋ง์ญ์์ค.
ํ์: ์๋.
๋์ : 3.0
๋ฆฌ๋๋ ์ _stderr
true์ธ ๊ฒฝ์ฐ ํ๋ก์ธ์ค์ stderr ์ถ๋ ฅ์ด ๊ฐ๋ ์ ํ์ค ์ถ๋ ฅ์
ํ์ผ ์ค๋ช ์(UNIX ์ ธ ์ฉ์ด๋ก ์ด๊ฒ์ /ํ๋ก๊ทธ๋จ
2> ๋ฐ 1).
์๋ฆผ:
์ค์ ํ์ง ๋ง์ญ์์ค redirect_stderr = true ์ ํ์ธํ์ญ์์ค. [์ด๋ฒคํธ ๋ฆฌ์ค๋:x] ๋ถ๋ถ. ์ด๋ฒคํธ ๋ฆฌ์ค๋
์ฌ์ฉ ํ์ค ์ถ๋ ฅ and ํ์ค ์ ์ํตํ๋ค ๊ฐ๋ ์. ๋ฉด ํ์ค ์ค๋ฅ ๋ฆฌ๋๋ ์ ๋๊ณ ,
์ถ์ฒ : ํ์ค ์ค๋ฅ ์ด๋ฒคํธ ๋ฆฌ์ค๋ ํ๋กํ ์ฝ์ ๋ฐฉํดํฉ๋๋ค.
ํ๋ง: ๊ฑฐ์ง
ํ์: ์๋.
๋์ : 3.0, 2.0 ๋์ฒด log_stdout and log_stderr
stdout_log ํ์ผ
ํ๋ก์ธ์ค stdout ์ถ๋ ฅ์ ์ด ํ์ผ์ ๋ฃ์ต๋๋ค(๊ทธ๋ฆฌ๊ณ ๋ง์ฝ redirect_stderr์ด ์ฐธ์ด๋ฉด,
์ด ํ์ผ์ stderr ์ถ๋ ฅ). ๋ง์ฝ์ stdout_log ํ์ผ ์ค์ ๋์ง ์์๊ฑฐ๋ AUTO, ๊ฐ๋ ์
์๋์ผ๋ก ํ์ผ ์์น๋ฅผ ์ ํํฉ๋๋ค. ๋ก ์ค์ ํ๋ฉด ์์, ๊ฐ๋ ์๋
๋ก๊ทธ ํ์ผ์ ์์ฑํ์ง ์์ต๋๋ค. AUTO ๋ก๊ทธ ํ์ผ ๋ฐ ํด๋น ๋ฐฑ์ ์ ๋ค์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ ์ญ์ ๋ฉ๋๋ค. ๊ฐ๋ ์
๋ค์ ์์ํฉ๋๋ค. NS stdout_log ํ์ผ ๊ฐ์ ๋ค์์ ์ํํ๋ Python ๋ฌธ์์ด ํํ์์ ํฌํจํ ์ ์์ต๋๋ค.
ํค๋ฅผ ํฌํจํ๋ ์ฌ์ ์ ๋ํด ํ๊ฐ๋จ ๊ทธ๋ฃน ์ด๋ฆ, ํธ์คํธ ๋ ธ๋ ์ด๋ฆ,
ํ๋ก์ธ์ค ๋ฒํธ, ํ๋ก๊ทธ๋จ _ ์ด๋ฆ๋ฐ LINK (Supervisord ๊ตฌ์ฑ ํ์ผ์ ๋๋ ํ ๋ฆฌ).
์๋ฆผ:
๋ ํ๋ก์ธ์ค๊ฐ ๋จ์ผ ๋ก๊ทธ ํ์ผ(stdout_log ํ์ผ)
ํ์ ํ ๋(stdout_logfile_maxbytes) ์ฌ์ฉ ๊ฐ๋ฅ. ๊ทธ๋ฌ๋ฉด ํ์ผ์ด ์์ฑ๋ฉ๋๋ค.
์์๋๊ณ ์์ต๋๋ค.
ํ๋ง: AUTO
ํ์: ์๋.
๋์ : 3.0, 2.0 ๋์ฒด ๋ก๊ทธ ํ์ผ
stdout_logfile_maxbytes
์ฌ์ฉํ ์ ์๋ ์ต๋ ๋ฐ์ดํธ ์ stdout_log ํ์ผ ํ์ ํ๊ธฐ ์ ์
(๊ฐ์ "KB", "MB" ๋ฐ "GB"์ ๊ฐ์ ์ ๋ฏธ์ฌ ์น์๋ฅผ ์ฌ์ฉํ ์ ์์). ์ด๊ฒ์ ์ค์
๋ฌด์ ํ ๋ก๊ทธ ํฌ๊ธฐ๋ฅผ ๋ํ๋ด๋ ค๋ฉด ๊ฐ์ 0์ผ๋ก ์ค์ ํฉ๋๋ค.
ํ๋ง: 50MB
ํ์: ์๋.
๋์ : 3.0, 2.0 ๋์ฒด logfile_maxbytes
stdout_logfile_backups
๊ฐ์ stdout_log ํ์ผ ํ๋ก์ธ์ค stdout ๋ก๊ทธ๋ก ์ธํ ๋ฐฑ์
ํ์ผ ํ์ . 0์ผ๋ก ์ค์ ํ๋ฉด ๋ฐฑ์ ์ด ์ ์ง๋์ง ์์ต๋๋ค.
ํ๋ง: 10
ํ์: ์๋.
๋์ : 3.0, 2.0 ๋์ฒด ๋ก๊ทธ ํ์ผ_๋ฐฑ์
stdout_capture_maxbytes
ํ๋ก์ธ์ค๊ฐ "stdout capture mode"์ผ ๋ FIFO๋ฅผ ์บก์ฒํ๊ธฐ ์ํด ์ฐ์ฌ์ง ์ต๋ ๋ฐ์ดํธ ์
(capture_mode ์ฐธ์กฐ). ์ ์์ฌ์ผ ํฉ๋๋ค("KB", "MB" ๋ฐ "GB"์ ๊ฐ์ ์ ๋ฏธ์ฌ ์น์
๊ฐ)์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ด ๊ฐ์ด 0์ด๋ฉด ํ๋ก์ธ์ค ์บก์ฒ ๋ชจ๋๊ฐ ํด์ ๋ฉ๋๋ค.
ํ๋ง: 0
ํ์: ์๋.
๋์ : 3.0, 2.0 ๋์ฒด ๋ก๊ทธ ํ์ผ_๋ฐฑ์
stdout_events_enabled
true์ธ ๊ฒฝ์ฐ ํ๋ก์ธ์ค๊ฐ ํด๋น ๋ฐ์ดํฐ์ ์ธ ๋ PROCESS_LOG_STDOUT ์ด๋ฒคํธ๊ฐ ๋ฐ์ํฉ๋๋ค.
stdout ํ์ผ ๊ธฐ์ ์. ์ด๋ฒคํธ๋ ํ์ผ ์ค๋ช ์๊ฐ ์๋ ๊ฒฝ์ฐ์๋ง ๋ฐ์ํฉ๋๋ค.
๋ฐ์ดํฐ๊ฐ ์์ ๋ ๋ ์บก์ฒ ๋ชจ๋์์(capture_mode ์ฐธ์กฐ).
ํ๋ง: 0
ํ์: ์๋.
๋์ : 3.0a7
stderr_log ํ์ผ
๋ค์์ ์ ์ธํ๊ณ ํ๋ก์ธ์ค stderr ์ถ๋ ฅ์ ์ด ํ์ผ์ ๋ฃ์ต๋๋ค. ๋ฆฌ๋๋ ์ _stderr ์ฌ์ค์ด๋ค. ์๋ฝ
๋์ผํ ๊ฐ ์ ํ stdout_log ํ์ผ ๋์ผํ Python ๋ฌธ์์ด ํํ์์ ํฌํจํ ์ ์์ต๋๋ค.
์๋ฆผ:
๋ ํ๋ก์ธ์ค๊ฐ ๋จ์ผ ๋ก๊ทธ ํ์ผ(stderr_log ํ์ผ)
ํ์ ํ ๋(stderr_logfile_maxbytes) ์ฌ์ฉ ๊ฐ๋ฅ. ๊ทธ๋ฌ๋ฉด ํ์ผ์ด ์์ฑ๋ฉ๋๋ค.
์์๋๊ณ ์์ต๋๋ค.
ํ๋ง: AUTO
ํ์: ์๋.
๋์ : 3.0
stderr_logfile_maxbytes
์ ๋ํ ๋ก๊ทธ ํ์ผ ํ์ ์ด์ ์ ์ต๋ ๋ฐ์ดํธ ์ stderr_log ํ์ผ. ์๋ฝ
๋์ผํ ๊ฐ ์ ํ stdout_logfile_maxbytes.
ํ๋ง: 50MB
ํ์: ์๋.
๋์ : 3.0
stderr_logfile_backups
ํ๋ก์ธ์ค stderr ๋ก๊ทธ ํ์ผ ํ์ ์ผ๋ก ์ธํด ์ ์ง๋ ๋ฐฑ์ ์์ ๋๋ค.
0์ผ๋ก ์ค์ ํ๋ฉด ๋ฐฑ์ ์ด ์ ์ง๋์ง ์์ต๋๋ค.
ํ๋ง: 10
ํ์: ์๋.
๋์ : 3.0
stderr_capture_maxbytes
ํ๋ก์ธ์ค๊ฐ "stderr ์บก์ฒ ๋ชจ๋"์ ์์ ๋ FIFO๋ฅผ ์บก์ฒํ๊ธฐ ์ํด ์ฐ์ฌ์ง ์ต๋ ๋ฐ์ดํธ ์
(capture_mode ์ฐธ์กฐ). ์ ์์ฌ์ผ ํฉ๋๋ค("KB", "MB" ๋ฐ "GB"์ ๊ฐ์ ์ ๋ฏธ์ฌ ์น์
๊ฐ)์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ด ๊ฐ์ด 0์ด๋ฉด ํ๋ก์ธ์ค ์บก์ฒ ๋ชจ๋๊ฐ ํด์ ๋ฉ๋๋ค.
ํ๋ง: 0
ํ์: ์๋.
๋์ : 3.0
stderr_events_enabled
true์ธ ๊ฒฝ์ฐ ํ๋ก์ธ์ค๊ฐ ํด๋น ๋ฐ์ดํฐ์ ์ธ ๋ PROCESS_LOG_STDERR ์ด๋ฒคํธ๊ฐ ๋ฐ์ํฉ๋๋ค.
stderr ํ์ผ ๋์คํฌ๋ฆฝํฐ. ํ์ผ ์ค๋ช ์๊ฐ ์๋ ๊ฒฝ์ฐ์๋ง ์ด๋ฒคํธ๊ฐ ๋ฐ์ํฉ๋๋ค.
๋ฐ์ดํฐ๊ฐ ์์ ๋ ๋ ์บก์ฒ ๋ชจ๋์์(capture_mode ์ฐธ์กฐ).
ํ๋ง: ๊ฑฐ์ง
ํ์: ์๋.
๋์ : 3.0a7
ํ๊ฒฝ
ํ์์ ํค/๊ฐ ์ ๋ชฉ๋ก ํค = "๋ฐ", ํค2 = "๋ฐ2" ์ ๋ฐฐ์น๋ ๊ฒ์ ๋๋ค.
์์ ํ๋ก์ธ์ค' ํ๊ฒฝ. ํ๊ฒฝ ๋ฌธ์์ด์๋ Python ๋ฌธ์์ด์ด ํฌํจ๋ ์ ์์ต๋๋ค.
ํฌํจํ๋ ์ฌ์ ์ ๋ํด ํ๊ฐ๋ ํํ์ ๊ทธ๋ฃน ์ด๋ฆ,
ํธ์คํธ ๋ ธ๋ ์ด๋ฆ, ํ๋ก์ธ์ค ๋ฒํธ, ํ๋ก๊ทธ๋จ _ ์ด๋ฆ๋ฐ LINK (๊ฐ๋ ์์ ๋๋ ํ ๋ฆฌ
๊ตฌ์ฑ ํ์ผ). ์์ซ์๊ฐ ์๋ ๋ฌธ์๋ฅผ ํฌํจํ๋ ๊ฐ์ ๋ฐ์ดํ๋ก ๋ฌถ์ด์ผ ํฉ๋๋ค(์:
ํค = "๋ฐ:123", ํค2 = "๋ฐ,456"). ๊ทธ๋ ์ง ์์ผ๋ฉด ๊ฐ์ ์ธ์ฉํ๋ ๊ฒ์ ์ ํ ์ฌํญ์ด์ง๋ง
์ข์ต๋๋ค. ์ฃผ์ ์ฌํญ ํ์ ํ๋ก์ธ์ค๋ ํ๊ฒฝ ๋ณ์๋ฅผ ์์ํฉ๋๋ค.
์ฌ๊ธฐ์์ ์ฌ์ ์๋ ๊ฒ์ ์ ์ธํ๊ณ "๊ฐ๋ ์"๋ฅผ ์์ํ๋ ๋ฐ ์ฌ์ฉ๋๋ ์ ธ์ ๋๋ค. ๋ณด๋ค
ํ์ ํ๋ก์ธ์ค_ํ๊ฒฝ.
ํ๋ง: ์ถ๊ฐ ํ๊ฒฝ ์์
ํ์: ์๋.
๋์ : 3.0
์๋ฐฐ ๊ท์น์
๋๋ ํ ๋ฆฌ๋ฅผ ๋ํ๋ด๋ ํ์ผ ๊ฒฝ๋ก ๊ฐ๋ ์ ์ผ์์ ์ผ๋ก chdir
์์ด๋ฅผ ์คํํ๊ธฐ ์ ์.
ํ๋ง: chdir ์์(๊ฐ๋ ์์ ์์)
ํ์: ์๋.
๋์ : 3.0
๋ง์คํฌ
ํ๋ก์ธ์ค์ umask๋ฅผ ๋ํ๋ด๋ 002์ง์(์: 022, XNUMX)์ ๋๋ค.
ํ๋ง: ํน๋ณํ umask ์์(๊ฐ๋ ๊ด ์์)
ํ์: ์๋.
๋์ : 3.0
์๋ฒ URL
ํ๊ฒฝ์์ ํ์ ํ๋ก์ธ์ค ํ๋ก์ธ์ค๋ก ์ ๋ฌ๋ URL์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. SUPERVISOR_SERVER_URL
(์ฐธ์กฐ ๊ฐ๋ ์.childutils) ํ์ ํ๋ก์ธ์ค๊ฐ ๋ค์๊ณผ ์ฝ๊ฒ ํต์ ํ ์ ์๋๋ก
๋ด๋ถ HTTP ์๋ฒ. ์ ๊ณต๋๋ ๊ฒฝ์ฐ ๋์ผํ ๊ตฌ๋ฌธ ๋ฐ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ ธ์ผ ํฉ๋๋ค.
[๊ฐ๋ ๊ด] ๊ฐ์ ์ด๋ฆ์ ์น์ ์ต์ . AUTO๋ก ์ค์ ํ๊ฑฐ๋ ์ค์ ํ์ง ์์ผ๋ฉด
๊ฐ๋ ์๋ ์๋์ผ๋ก ์๋ฒ URL์ ๊ตฌ์ฑํ์ฌ ์๋ฒ์ ์ฐ์ ์์๋ฅผ ๋ถ์ฌํฉ๋๋ค.
์ธํฐ๋ท ์์ผ์์ ์์ ๋๊ธฐํ๋ ๊ฒ๋ณด๋ค UNIX ๋๋ฉ์ธ ์์ผ์์ ์์ ๋๊ธฐํฉ๋๋ค.
ํ๋ง: ์๋
ํ์: ์๋.
๋์ : 3.0
[ํ๋ก๊ทธ๋จ:x] ์น์ ์์
[ํ๋ก๊ทธ๋จ:๊ณ ์์ด]
๋ช ๋ น =/bin/๊ณ ์์ด
ํ๋ก์ธ์ค ์ด๋ฆ=%(ํ๋ก๊ทธ๋จ ์ด๋ฆ)s
numprocs=1
๋๋ ํ ๋ฆฌ=/ TMP
์ฐ๋ง์คํฌ=022
์ฐ์ ์์ = 999
์๋ ์์ = ์ฐธ
autorestart=์์์น ๋ชปํ
์์ ์ด = 10
์์ ์ฌ์๋=3
์ข ๋ฃ ์ฝ๋=0,2
์ ์ง ์ ํธ = TERM
stopwaitsecs=10
stopasgroup=๊ฑฐ์ง
killasgroup=๊ฑฐ์ง
์ฌ์ฉ์=ํฌ๋ฆฌ์ค๋ง์ค
redirect_stderr=๊ฑฐ์ง
stdout_logfile=/a/๊ฒฝ๋ก
stdout_logfile_maxbytes=1MB
stdout_logfile_backups=10
stdout_capture_maxbytes=1MB
stdout_events_enabled=๊ฑฐ์ง
stderr_logfile=/a/๊ฒฝ๋ก
stderr_logfile_maxbytes=1MB
stderr_logfile_backups=10
stderr_capture_maxbytes=1MB
stderr_events_enabled=๊ฑฐ์ง
ํ๊ฒฝ=A="1",B="2"
serverurl=์๋
[ํฌํจํ๋ค] ์น์ ์ค์
์ด ์ดํ๋ฆฌ์ผ์ด์ ์๋ XNUMXยตm ๋ฐ XNUMXยตm ํ์ฅ์์ ์ต๋ XNUMXW์ ํ๊ท ์ถ๋ ฅ์ ์ ๊ณตํ๋ ๊ฐ๋ ์.conf ํ์ผ์๋ ๋ค์๊ณผ ๊ฐ์ ์น์ ์ด ํฌํจ๋ ์ ์์ต๋๋ค. [ํฌํจํ๋ค]. ๊ตฌ์ฑ์ด
ํ์ผ์ ํฌํจ [ํฌํจํ๋ค] ์น์ ์์ "files"๋ผ๋ ๋จ์ผ ํค๋ฅผ ํฌํจํด์ผ ํฉ๋๋ค. NS
์ด ํค์ ๊ฐ์ ๋ด๋ถ์ ํฌํจ๋ ๋ค๋ฅธ ๊ตฌ์ฑ ํ์ผ์ ์ง์ ํฉ๋๋ค.
๊ตฌ์ฑ.
[ํฌํจํ๋ค] ์น์ ๋ง์ผํ ์:
ํ์ผ
๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถ๋ ํ์ผ ๊ธ๋ก๋ธ ์ํ์ค์ ๋๋ค. ๊ฐ ํ์ผ glob์ ์ ๋์ ์ด๊ฑฐ๋ ์๋์ ์ผ ์ ์์ต๋๋ค.
ํ์ผ glob์ด ์๋์ ์ธ ๊ฒฝ์ฐ ํ์ผ์ ์์น์ ์๋์ ์ธ ๊ฒ์ผ๋ก ๊ฐ์ฃผ๋ฉ๋๋ค.
๊ทธ๊ฒ์ ํฌํจํ๋ ๊ตฌ์ฑ ํ์ผ. "glob"์ ์ผ์นํ๋ ํ์ผ ํจํด์ ๋๋ค.
Unix ์ ธ์์ ์ฌ์ฉํ๋ ๊ท์น์ ๋ฐ๋ผ ์ง์ ๋ ํจํด์ ๋๋ค. ๋ฌผ๊ฒฐํ ํ์ฅ ์์
๋๋ฌ์ง๋ง *, ?, ๋ฐ ๋ฌธ์ ๋ฒ์๋ก ํํ๋ [] ์ ํํ๊ฒ ์ผ์น๋ ๊ฒ์ ๋๋ค.
ํฌํจ๋ ํ์ผ์ ์ฌ๊ท ํฌํจ์ ์ง์๋์ง ์์ต๋๋ค.
ํ๋ง: ๊ธฐ๋ณธ๊ฐ ์์(ํ์)
ํ์: ์.
๋์ : 3.0
[ํฌํจํ๋ค] ์น์ ์์
[ํฌํจํ๋ค]
ํ์ผ = /an/absolute/filename.conf /an/absolute/*.conf foo.conf config??.conf
[๊ทธ๋ฃน:x] ์น์ ์ค์
"๋์ข " ํ๋ก์ธ์ค ๊ทธ๋ฃน(์ผ๋ช "ํ๋ก๊ทธ๋จ")์ ๊ทธ๋ฃนํํ๋ ๊ฒ์ด ์ข ์ข ์ ์ฉํฉ๋๋ค.
"์ด๊ธฐ์ข " ํ๋ก์ธ์ค ๊ทธ๋ฃน์ ํตํด ๊ด๋ฆฌ์์ ๋จ์๋ก ์ ์ดํ ์ ์์ต๋๋ค.
๋ค์ํ ์ปจํธ๋กค๋ฌ ์ธํฐํ์ด์ค.
ํ๋์ ๋จ์๋ก ์ทจ๊ธํ ์ ์๋๋ก ํ๋ก๊ทธ๋จ์ ๊ทธ๋ฃน์ ๋ฐฐ์นํ๋ ค๋ฉด ๋ค์์ ์ ์ํ์ญ์์ค. [๊ทธ๋ฃน:x] ์น์ ์ ์์ด์ผ ํฉ๋๋ค.
๊ตฌ์ฑ ํ์ผ์์. ๊ทธ๋ฃน ํค๋ ๊ฐ์ ํฉ์ฑ์ ๋๋ค. ๊ทธ๊ฒ์ ๋จ์ด
"group" ๋ค์์ ์ฝ๋ก ์ด ์ค๊ณ ๊ทธ ๋ค์์ ๊ทธ๋ฃน ์ด๋ฆ์ด ์ต๋๋ค. ํค๋ ๊ฐ [๊ทธ๋ฃน:ํธ]
"foo"๋ผ๋ ์ด๋ฆ์ ๊ทธ๋ฃน์ ์ค๋ช ํฉ๋๋ค. ์ด๋ฆ์ ํด๋ผ์ด์ธํธ ์์ฉ ํ๋ก๊ทธ๋จ ๋ด์์ ์ฌ์ฉ๋ฉ๋๋ค.
์ด ๊ตฌ์ฑ์ ๊ฒฐ๊ณผ๋ก ์์ฑ๋๋ ํ๋ก์ธ์ค๋ฅผ ์ ์ดํฉ๋๋ค. ์ด๊ฒ์
์์ฑ ์ค๋ฅ ๊ทธ๋ฃน ์ด๋ฆ์ด ์๋ ์น์ . ์ด๋ฆ์๋
์ฝ๋ก ๋ฌธ์ ๋๋ ๋๊ดํธ ๋ฌธ์.
[๊ทธ๋ฃน:x], ํ๋ ์ด์์ด ์์ด์ผ ํฉ๋๋ค. [ํ๋ก๊ทธ๋จ:x] ์น์
๊ตฌ์ฑ ํ์ผ์ด๋ฉฐ ๊ทธ๋ฃน์ ๊ตฌ์ฑ ํ์ผ์์ ์ด๋ฆ์ผ๋ก ์ฐธ์กฐํด์ผ ํฉ๋๋ค. ํ๋ก๊ทธ๋จ ๊ฐ.
"๋์ข " ํ๋ก์ธ์ค ๊ทธ๋ฃน(ํ๋ก๊ทธ๋จ ์น์ ์ผ๋ก ํ์)์ด
"์ด๊ธฐ์ข " ๊ทธ๋ฃน์ ํตํด [๊ทธ๋ฃน:x] ์น์ ์ ํ๋ก๊ทธ๋จ ์ , ๊ท ์งํ ๊ทธ๋ฃน
ํ๋ก๊ทธ๋จ ์น์ ์ ๊ฐ๋ ์์ ๋ฐํ์์ ์กด์ฌํ์ง ์์์ ์์ํฉ๋๋ค. ๋์ ๋ชจ๋
๋์ข ๊ทธ๋ฃน ๊ฐ๊ฐ์ ์ํ๋ ํ๋ก์ธ์ค๋
์ด์ง์ ์ธ ๊ทธ๋ฃน. ์๋ฅผ ๋ค์ด ๋ค์ ๊ทธ๋ฃน ๊ตฌ์ฑ์ด ์๋ค๊ณ ๊ฐ์ ํฉ๋๋ค.
[๊ทธ๋ฃน:ํธ]
ํ๋ก๊ทธ๋จ=๋ฐ,๋ฐ์ฆ
์ฐ์ ์์ = 999
์์ ์ฌํญ์ ๊ฐ์ํ ๋ ๊ฐ๋ ์ ์์ ์, ๋ฐ and ๋ฐ์ฆ ๋์ง์ ์ธ ๊ทธ๋ฃน์
์กด์ฌํ๊ณ ๊ทธ ์๋ ์์์ ํ๋ก์ธ์ค๋ ์ด์ ํธ
๊ทธ๋ฃน์ ๋๋ค.
[๊ทธ๋ฃน:x] ์น์ ๋ง์ผํ ์:
ํ๋ก๊ทธ๋จ
์ผํ๋ก ๊ตฌ๋ถ๋ ํ๋ก๊ทธ๋จ ์ด๋ฆ ๋ชฉ๋ก์ ๋๋ค. ๋์ด๋ ํ๋ก๊ทธ๋จ์ ํ์์ด ๋ฉ๋๋ค.
๊ทธ๋ฃน์.
ํ๋ง: ๊ธฐ๋ณธ๊ฐ ์์(ํ์)
ํ์: ์.
๋์ : 3.0
์ฐ์
์ ์ ์ฌํ ์ฐ์ ์์ ๋ฒํธ [ํ๋ก๊ทธ๋จ:x] ๊ทธ๋ฃน์ ํ ๋น๋ ์ฐ์ ์์ ๊ฐ์ ๋๋ค.
ํ๋ง: 999
ํ์: ์๋.
๋์ : 3.0
[๊ทธ๋ฃน:x] ์น์ ์์
[๊ทธ๋ฃน:ํธ]
ํ๋ก๊ทธ๋จ=๋ฐ,๋ฐ์ฆ
์ฐ์ ์์ = 999
[fcgi-ํ๋ก๊ทธ๋จ:x] ์น์ ์ค์
๊ฐ๋ ์๋ ๊ทธ๋ฃน์ ๊ด๋ฆฌํ ์ ์์ต๋๋ค. ๋น ๋ฅธCGI ๋ชจ๋ ๋์ผํ ์์ผ์์ ์์ ๋๊ธฐํ๋ ํ๋ก์ธ์ค.
์ง๊ธ๊น์ง FastCGI์ ๋ฐฐํฌ ์ ์ฐ์ฑ์ ์ ํ์ ์ด์์ต๋๋ค. ์ ์ฒด ํ๋ก์ธ์ค๋ฅผ ์ป์ผ๋ ค๋ฉด
๊ด๋ฆฌ, Apache์์ mod_fastcgi๋ฅผ ์ฌ์ฉํ ์ ์์ง๋ง Apache์
์ฐ๊ฒฐ๋น ํ๋์ ํ๋ก์ธ์ค ๋๋ ์ค๋ ๋์ ๋นํจ์จ์ ์ธ ๋์์ฑ ๋ชจ๋ธ. ๋ฟ๋ง ์๋๋ผ
๋ ๋ง์ CPU ๋ฐ ๋ฉ๋ชจ๋ฆฌ ๋ฆฌ์์ค๊ฐ ํ์ํ ๊ฒฝ์ฐ ์ฐ๊ฒฐ ๋ชจ๋ธ๋น ํ๋ก์ธ์ค/์ค๋ ๋๊ฐ
๋๋ฆฐ ๋ฆฌ์์ค์ ์ํด ๋น ๋ฅด๊ฒ ํฌํ๋์ด ๋ค๋ฅธ ๋ฆฌ์์ค๊ฐ ์ ๊ณต๋๋ ๊ฒ์ ๋ฐฉ์งํฉ๋๋ค. ์
lighttpd ๋๋ nginx์ ๊ฐ์ ์ต์ ์ด๋ฒคํธ ๊ธฐ๋ฐ ์น ์๋ฒ๋ฅผ ํ์ฉํ๊ธฐ ์ํด
๋ด์ฅ๋ ํ๋ก์ธ์ค ๊ด๋ฆฌ์๋ฅผ ํฌํจํ์ง ๋ง์ญ์์ค. cgi-fcgi ๋๋
์คํฐ-fcgi. ์ด๋ Supervisord์ ๊ฐ์ ํ๋ก์ธ์ค ๊ด๋ฆฌ์์ ํจ๊ป ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋๋ daemontools์ด์ง๋ง ๊ฐ FastCGI ์์ ํ๋ก์ธ์ค๊ฐ ์์ฒด ์์ผ์ ๋ฐ์ธ๋ฉํด์ผ ํฉ๋๋ค. NS
์ด๊ฒ์ ๋จ์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค: ๋ถํ์ํ๊ฒ ๋ณต์กํ ์น ์๋ฒ ๊ตฌ์ฑ, ๋ถ์ ์
๋ค์ ์์ํ๊ณ ๋ด๊ฒฐํจ์ฑ์ ์ค์ ๋๋ค. ๋ ์ ์ ์์ ์์ผ ๊ตฌ์ฑ์ผ๋ก ์น ์๋ฒ
FastCGI ํ๋ก์ธ์ค ๊ทธ๋ฃน์ด ์์ผ์ ๊ณต์ ํ ์ ์๋ ๊ฒฝ์ฐ ๊ตฌ์ฑ์ ํจ์ฌ ๋ ์์ต๋๋ค. ๊ณต์
์์ผ์ ๋ถ๋ชจ ํ๋ก์ธ์ค์ ๋ฐ์ธ๋ฉ๋์ด ์๊ธฐ ๋๋ฌธ์ ์ ์์ ์ธ ์ฌ์์์ ํ์ฉํฉ๋๋ค.
์์ ํ๋ก์ธ์ค๊ฐ ๋ค์ ์์๋๋ ๋์. ๋ง์ง๋ง์ผ๋ก ๊ณต์ ์์ผ์ด ๋ ๋ง์ต๋๋ค.
์ฃผ์ด์ง ํ๋ก์ธ์ค๊ฐ ์คํจํ๋ฉด ๋ค๋ฅธ ํ๋ก์ธ์ค๊ฐ ๊ณ์ ์๋น์ค๋ฅผ ์ ๊ณตํ ์ ์๊ธฐ ๋๋ฌธ์ ๋ด๊ฒฐํจ์ฑ
์ธ๋ฐ์ด๋ ์ฐ๊ฒฐ.
ํตํฉ FastCGI ์์ฑ ์ง์์ ํตํด Supervisor๋ ๋ ๊ฐ์ง ์ฅ์ ์ ๋ชจ๋ ์ ๊ณตํฉ๋๋ค.
์์ผ์ ๊ณต์ ํ๋ FastCGI ํ๋ก์ธ์ค ๊ทธ๋ฃน์ผ๋ก ์์ ํ ๊ธฐ๋ฅ์ ๊ฐ์ถ ํ๋ก์ธ์ค ๊ด๋ฆฌ๋ฅผ ์ป์ ์ ์์ต๋๋ค.
ํน์ ์น ์๋ฒ์ ์ฝ๋งค์ด์ง ์๊ณ ๊ฑฑ์ ๊ฑฐ๋ฆฌ๋ฅผ ๊น๋ํ๊ฒ ๋ถ๋ฆฌํ๋ ๊ฒ์ ๋๋ค.
์น ์๋ฒ์ ํ๋ก์ธ์ค ๊ด๋ฆฌ์๊ฐ ๊ฐ์๊ฐ ๊ฐ์ฅ ์ํ๋ ์ผ์ ํ ์ ์๋๋ก ํฉ๋๋ค.
์๋ฆผ:
Supervisor์ ์์ผ ๊ด๋ฆฌ์๋ ์๋ FastCGI ํ๋ก์ธ์ค๋ฅผ ์ง์ํ๊ธฐ ์ํด ๊ฐ๋ฐ๋์์ต๋๋ค.
๊ทธ๋ฌ๋ FastCGI์ ๊ตญํ๋์ง ์์ต๋๋ค. ํน๋ณํ ์ ์ฐจ ์์ด ๋ค๋ฅธ ํ๋กํ ์ฝ๋ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๊ตฌ์ฑ. ํ์ผ ์ค๋ช ์์์ ์ด๋ฆฐ ์์ผ์ ์ก์ธ์คํ ์ ์๋ ๋ชจ๋ ํ๋ก๊ทธ๋จ(์:
๊ณผ ์์ผ.fromfd Python) ์์ผ ๊ด๋ฆฌ์๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๊ฐ๋ ๊ด์
์์ผ์ ์๋์ผ๋ก ์์ฑํ๊ณ , ๋ฐ์ธ๋ฉํ๊ณ , ์ฒซ ๋ฒ์งธ ์์์ ๋ถ๊ธฐํ๊ธฐ ์ ์ ์์ ๋๊ธฐํฉ๋๋ค.
๊ทธ๋ฃน. ์์ผ์ ํ์ผ ์ค๋ช ์ ๋ฒํธ์ ๊ฐ ์์์๊ฒ ์ ๋ฌ๋ฉ๋๋ค. 0 (์ ๋ก).
๊ทธ๋ฃน์ ๋ง์ง๋ง ์์์ด ์ข ๋ฃ๋๋ฉด Supervisor๋ ์์ผ์ ๋ซ์ต๋๋ค.
์ฌ์ฉํ ์ ์๋ ๋ชจ๋ ์ต์ [ํ๋ก๊ทธ๋จ:x] ์น์ ๋ ๋ค์๊ณผ ๊ฐ์ด ์กด์ค๋ฉ๋๋ค. fcgi ํ๋ก๊ทธ๋จ
์น์ ์ ์ฐธ์กฐํ์ญ์์ค.
[fcgi-ํ๋ก๊ทธ๋จ:x] ์น์ ๋ง์ผํ ์:
[fcgi-ํ๋ก๊ทธ๋จ:x] ์น์ ์๋ ๋จ์ผ ํค๊ฐ ์์ต๋๋ค. [ํ๋ก๊ทธ๋จ:x] ์น์ ์ด ์์ต๋๋ค.
์์ผ
์ด ํ๋ก๊ทธ๋จ์ FastCGI ์์ผ(TCP ๋๋ UNIX ๋๋ฉ์ธ ์์ผ). TCP ์์ผ์ ๊ฒฝ์ฐ,
๋ค์ ํ์์ ์ฌ์ฉํ์ญ์์ค. tcp://๋ก์ปฌํธ์คํธ:9002. UNIX ๋๋ฉ์ธ ์์ผ์ ๊ฒฝ์ฐ ๋ค์์ ์ฌ์ฉํ์ญ์์ค.
์ ๋์ค:///absolute/path/to/file.sock. ๋ฌธ์์ด ํํ์์ ๋ค์์ ๋ํด ํ๊ฐ๋ฉ๋๋ค.
"program_name" ๋ฐ "here" ํค๋ฅผ ํฌํจํ๋ ์ฌ์ (
Supervisord ๊ตฌ์ฑ ํ์ผ).
ํ๋ง: ๊ธฐ๋ณธ๊ฐ์ด ์์ต๋๋ค.
ํ์: ์.
๋์ : 3.0
์์ผ ์์ ์
UNIX ๋๋ฉ์ธ ์์ผ์ ๊ฒฝ์ฐ ์ด ๋งค๊ฐ๋ณ์๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์ ๋ฐ ๊ทธ๋ฃน์ ์ง์ ํ ์ ์์ต๋๋ค.
FastCGI ์์ผ. UNIX ์ฌ์ฉ์ ์ด๋ฆ(์: chrism) ๋๋ UNIX ์ฌ์ฉ์ ์ด๋ฆ ๋ฐ ๊ทธ๋ฃน์ผ ์ ์์ต๋๋ค.
์ฝ๋ก ์ผ๋ก ๊ตฌ๋ถ๋ฉ๋๋ค(์: chrism:wheel).
ํ๋ง: fcgi ํ๋ก๊ทธ๋จ์ ๋ํด ์ค์ ๋ ์ฌ์ฉ์ ๋ฐ ๊ทธ๋ฃน์ ์ฌ์ฉํฉ๋๋ค.
ํ์: ์๋.
๋์ : 3.0
์์ผ ๋ชจ๋
UNIX ๋๋ฉ์ธ ์์ผ์ ๊ฒฝ์ฐ ์ด ๋งค๊ฐ๋ณ์๋ฅผ ์ฌ์ฉํ์ฌ ๊ถํ ๋ชจ๋๋ฅผ ์ง์ ํ ์ ์์ต๋๋ค.
ํ๋ง: 0700
ํ์: ์๋.
๋์ : 3.0
๋ฌธ์ [ํ๋ก๊ทธ๋จ:x] ์น์ ์ค์ ๋ค๋ฅธ ํ์ฉ ๊ฐ๋ฅํ ํค์ ๊ฒฝ์ฐ ์์ ์ ์ฝ ์กฐ๊ฑด์ ๋ธํ
๊ทธ๋ฆฌ๊ณ ์ถ๊ฐ.
[fcgi-ํ๋ก๊ทธ๋จ:x] ์น์ ์์
[fcgi-ํ๋ก๊ทธ๋จ:fcgiํ๋ก๊ทธ๋จ ์ด๋ฆ]
๋ช ๋ น=/usr/bin/example.fcgi
์์ผ=unix:///var/run/supervisor/%(program_name)s.sock
socket_owner=ํฌ๋ฆฌ์ค๋ง์ค
์์ผ ๋ชจ๋=0700
process_name=%(program_name)s_%(process_num)02d
numprocs=5
๋๋ ํ ๋ฆฌ=/ TMP
์ฐ๋ง์คํฌ=022
์ฐ์ ์์ = 999
์๋ ์์ = ์ฐธ
autorestart=์์์น ๋ชปํ
์์ ์ด = 1
์์ ์ฌ์๋=3
์ข ๋ฃ ์ฝ๋=0,2
์ ์ง ์ ํธ = ์ข ๋ฃ
stopasgroup=๊ฑฐ์ง
killasgroup=๊ฑฐ์ง
stopwaitsecs=10
์ฌ์ฉ์=ํฌ๋ฆฌ์ค๋ง์ค
redirect_stderr = true
stdout_logfile=/a/๊ฒฝ๋ก
stdout_logfile_maxbytes=1MB
stdout_logfile_backups=10
stdout_events_enabled=๊ฑฐ์ง
stderr_logfile=/a/๊ฒฝ๋ก
stderr_logfile_maxbytes=1MB
stderr_logfile_backups=10
stderr_events_enabled=๊ฑฐ์ง
ํ๊ฒฝ=A="1",B="2"
serverurl=์๋
[์ด๋ฒคํธ ๋ฆฌ์ค๋:x] ์น์ ์ค์
Supervisor๋ ์ ๋ฌธํ๋ ๋์ข ํ๋ก์ธ์ค ๊ทธ๋ฃน("์ด๋ฒคํธ ๋ฆฌ์ค๋ ํ")์ ํ์ฉํฉ๋๋ค.
๊ตฌ์ฑ ํ์ผ ๋ด์ ์ ์๋์ด ์์ต๋๋ค. ์ด๋ฌํ ํ์๋ ๋ค์์ ์ํํ๋ ํ๋ก์ธ์ค๊ฐ ํฌํจ๋์ด ์์ต๋๋ค.
๊ฐ๋ ์์ ์ด๋ฒคํธ ์์คํ ์์ ์ด๋ฒคํธ ์๋ฆผ์ ์์ ํ๊ณ ์๋ตํฉ๋๋ค. ์ด๋ฒคํธ ๋ณด๊ธฐ
์ด๋ฒคํธ๊ฐ ์๋ํ๋ ๋ฐฉ์๊ณผ ๋ค์๊ณผ ๊ฐ์ด ์ ์ธ๋ ์ ์๋ ํ๋ก๊ทธ๋จ์ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์ค๋ช
์ด๋ฒคํธ ๋ฆฌ์ค๋.
์ฌ์ฉํ ์ ์๋ ๋ชจ๋ ์ต์ ์ [ํ๋ก๊ทธ๋จ:x] ์ด๋ฒคํธ ๋ฆฌ์ค๋๋ ์น์ ์ ์กด์คํฉ๋๋ค.
์น์ ์ธ for stdout_capture_maxbytes and stderr_capture_maxbytes (์ด๋ฒคํธ ๋ฆฌ์ค๋
ํ๋ก์ธ์ค ํต์ ์ด๋ฒคํธ๋ฅผ ๋ด๋ณด๋ผ ์ ์์ต๋๋ค. capture_mode ์ฐธ์กฐ).
[์ด๋ฒคํธ ๋ฆฌ์ค๋:x] ์น์ ๋ง์ผํ ์:
[์ด๋ฒคํธ ๋ฆฌ์ค๋:x] ์น์ ์๋ ๋ช ๊ฐ์ง ํค๊ฐ ์์ต๋๋ค. [ํ๋ก๊ทธ๋จ:x] ์น์ ์ด ์์ต๋๋ค.
๋ฒํผ ํฌ๊ธฐ
์ด๋ฒคํธ ๋ฆฌ์ค๋ ํ์ ์ด๋ฒคํธ ํ ๋ฒํผ ํฌ๊ธฐ์ ๋๋ค. ๋ฆฌ์ค๋ ํ์ ์ด๋ฒคํธ ๋ฒํผ๊ฐ
์ค๋ฒํ๋ก๋จ(์ด๋ฒคํธ ๋ฆฌ์ค๋ ํ์ด ๋ชจ๋
์ด๋ฒคํธ๊ฐ ์ ์ก๋จ) ๋ฒํผ์์ ๊ฐ์ฅ ์ค๋๋ ์ด๋ฒคํธ๊ฐ ์ญ์ ๋ฉ๋๋ค.
์ด๋ฒคํธ
์ด ์์ ๊ธฐ๊ฐ "๊ด์ฌ ์๋" ์ด๋ฒคํธ ์ ํ ์ด๋ฆ์ ์ผํ๋ก ๊ตฌ๋ถ๋ ๋ชฉ๋ก
์ ๋ํ ์๋ฆผ ์์ (์ ํจํ ์ด๋ฒคํธ ์ ํ ์ด๋ฆ ๋ชฉ๋ก์ event_types ์ฐธ์กฐ).
๊ฒฐ๊ณผ_์ฒ๋ฆฌ๊ธฐ
A pkg_resources ํญ๋ชฉ ํฌ์ธํธ ํ Python ํธ์ถ ๊ฐ๋ฅ์ผ๋ก ํ์ธ๋ฉ๋๋ค. ๊ธฐ๋ณธ๊ฐ
๊ฐ์น๋ Supervisor.dispatchers:default_handler. ๋์ฒด ๊ฒฐ๊ณผ ์ง์
์ฒ๋ฆฌ๊ธฐ๋ ์ํํด์ผ ํ๋ ๋งค์ฐ ๋๋ฌธ ์ผ์ด๋ฉฐ ๊ฒฐ๊ณผ์ ์ผ๋ก ์ฒ๋ฆฌ๊ธฐ๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ์
๋ฌธ์ํ๋์ง ์์์ต๋๋ค.
๋ฌธ์ [ํ๋ก๊ทธ๋จ:x] ์น์ ์ค์ ๋ค๋ฅธ ํ์ฉ ๊ฐ๋ฅํ ํค์ ๊ฒฝ์ฐ ์์ ์ ์ฝ ์กฐ๊ฑด์ ๋ธํ
๊ทธ๋ฆฌ๊ณ ์ถ๊ฐ.
[์ด๋ฒคํธ ๋ฆฌ์ค๋:x] ์น์ ์์
[์ด๋ฒคํธ ๋ฆฌ์ค๋:์ด๋ฒคํธ ๋ฆฌ์ค๋ ์ด๋ฆ]
๋ช ๋ น=/bin/eventlistener
process_name=%(program_name)s_%(process_num)02d
numprocs=5
์ด๋ฒคํธ=PROCESS_STATE
๋ฒํผ ํฌ๊ธฐ=10
๋๋ ํ ๋ฆฌ=/ TMP
์ฐ๋ง์คํฌ=022
์ฐ์ ์์=-1
์๋ ์์ = ์ฐธ
autorestart=์์์น ๋ชปํ
์์ ์ด = 1
์์ ์ฌ์๋=3
์ข ๋ฃ ์ฝ๋=0,2
์ ์ง ์ ํธ = ์ข ๋ฃ
stopwaitsecs=10
stopasgroup=๊ฑฐ์ง
killasgroup=๊ฑฐ์ง
์ฌ์ฉ์=ํฌ๋ฆฌ์ค๋ง์ค
redirect_stderr=๊ฑฐ์ง
stdout_logfile=/a/๊ฒฝ๋ก
stdout_logfile_maxbytes=1MB
stdout_logfile_backups=10
stdout_events_enabled=๊ฑฐ์ง
stderr_logfile=/a/๊ฒฝ๋ก
stderr_logfile_maxbytes=1MB
stderr_logfile_backups=10
stderr_events_enabled=๊ฑฐ์ง
ํ๊ฒฝ=A="1",B="2"
serverurl=์๋
[rpc์ธํฐํ์ด์ค:x] ์น์ ์ค์
์ฒจ๊ฐ rpc์ธํฐํ์ด์ค:x ๊ตฌ์ฑ ํ์ผ์ ์ค์ ์ ๋ค์์ ์ํํ๋ ์ฌ๋๋ค์๊ฒ๋ง ์ ์ฉํฉ๋๋ค.
์ถ๊ฐ ์ฌ์ฉ์ ์ง์ ๋์์ผ๋ก ๊ฐ๋ ์๋ฅผ ํ์ฅํ๋ ค๊ณ ํฉ๋๋ค.
์ํ ๊ตฌ์ฑ ํ์ผ์๋ ๋ค์๊ณผ ๊ฐ์ ์น์ ์ด ์์ต๋๋ค. [rpcinterface:๊ฐ๋ ์].
๊ธฐ๋ณธ์ ์ผ๋ก ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
[rpcinterface:๊ฐ๋ ์]
์ํผ๋ฐ์ด์ .rpcinterface_factory = ์ํผ๋ฐ์ด์ .rpcinterface:make_main_rpcinterface
์ด ์ดํ๋ฆฌ์ผ์ด์ ์๋ XNUMXยตm ๋ฐ XNUMXยตm ํ์ฅ์์ ์ต๋ XNUMXW์ ํ๊ท ์ถ๋ ฅ์ ์ ๊ณตํ๋ [rpcinterface:๊ฐ๋ ์] ์น์ ์ ์์ด์ผ ํฉ๋๋ค. ์ ๋๋ก ํ์ํ ๊ฒ ํ์ค์ ๋ํ ๊ตฌ์ฑ ์ ์ง
๊ฐ๋ ์๊ฐ ์ ๋๋ก ์๋ํ๋๋ก ์ค์ ํฉ๋๋ค. ์์ฌ๊ฐ ์๋ฌด๊ฒ๋ ํ์ง ์๊ธฐ๋ฅผ ๋ฐ๋๋ค๋ฉด
๋ ์ด๋ฏธ ์ฆ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ด๊ฒ์ด ์ด๋ฌํ ์ ํ์
์๋ด
๊ทธ๋ฌ๋ ๊ฐ๋ ์๋ฅผ ์ฌ์ฉ์ ์ง์ ํ๊ธฐ ์ํด rpc ์ธํฐํ์ด์ค ๋ค์์คํ์ด์ค๋ฅผ ์ถ๊ฐํ๋ ค๋ฉด
์ถ๊ฐํ ์ ์์ต๋๋ค [rpc์ธํฐํ์ด์ค:foo] ์น์ , ์ฌ๊ธฐ์ "foo"๋ ์ ๋ค์์คํ์ด์ค๋ฅผ ๋ํ๋ ๋๋ค.
์ธํฐํ์ด์ค(์น ๋ฃจํธ์์) ๋ฐ ๋ค์์ผ๋ก ๋ช ๋ช ๋ ๊ฐ ๊ฐ๋ ์.rpcinterface_factory
๋จ์ผ ํ์ฉํ๋ ํจ์ ์๋ช ์ด ์์ด์ผ ํ๋ ํฉํ ๋ฆฌ ์ฝ๋ฌ๋ธ์ ๋๋ค.
์์น ์ธ์ ๊ฐ๋ ์ ์ํํ๋ ๋ฐ ํ์ํ ๋งํผ์ ํค์๋ ์ธ์
๊ตฌ์ฑ. ๋ด์์ ์ ์๋ ์ถ๊ฐ ํค/๊ฐ ์ [rpc์ธํฐํ์ด์ค:x] ์น์ ์
ํฉํ ๋ฆฌ์ ํค์๋ ์ธ์๋ก ์ ๋ฌ๋ฉ๋๋ค.
๋ค์์ ์์ ์์ฑ๋ ํฉํ ๋ฆฌ ํจ์์ ์์ ๋๋ค. __์ด๊ธฐํ__.py ํ์ด์ฌ์ ํ์ผ
๊พธ๋ฌ๋ฏธ ๋ด ํจํค์ง.
my.package.rpcinterface์์ AnotherRPCInterface ๊ฐ์ ธ์ค๊ธฐ
def make_another_rpcinterface(๊ฐ๋ ์, **๊ตฌ์ฑ):
์ฌ์๋ = int(config.get('์ฌ์๋', 0))
another_rpc_interface = AnotherRPCInterface(๊ฐ๋ ์, ์ฌ์๋)
other_rpc_interface ๋ฐํ
๊ทธ๋ฆฌ๊ณ ๊ตฌ์ฑ ํ์ผ์ ์น์ ์ ๊ตฌ์ฑ์ ์๋ฏธํฉ๋๋ค.
[rpc์ธํฐํ์ด์ค:๋ค๋ฅธ]
Supervisor.rpcinterface_factory = my.package:make_another_rpcinterface
์ฌ์๋ = 1
[rpc์ธํฐํ์ด์ค:x] ์น์ ๋ง์ผํ ์:
๊ฐ๋ ์.rpcinterface_factory
pkg_resources "์ง์ ์ "์ RPC ์ธํฐํ์ด์ค์ ํฉํ ๋ฆฌ ๊ธฐ๋ฅ์ ๋ํ ์ ์ผ๋ก ๋ ์ด๋ฆ์ ๋๋ค.
ํ๋ง: N / A
ํ์: ์๋.
๋์ : 3.0
[rpc์ธํฐํ์ด์ค:x] ์น์ ์์
[rpc์ธํฐํ์ด์ค:๋ค๋ฅธ]
Supervisor.rpcinterface_factory = my.package:make_another_rpcinterface
์ฌ์๋ = 1
์ฉ์ด์ฌ์
๋ฐ๋ชฌ ๋๊ตฌ
A ๋ฐฉ๋ฒ ์ ์ด ์ฒด๊ณ by DJ Bernstein.
๋ฐ์นญ
A ๋ฐฉ๋ฒ ์ ์ด ์ฒด๊ณ ์ต์ํ by Apple Mac OS X์์ ํ๋ก์ธ์ค 1๋ก.
๋ฃจ๋ฐ A ๋ฐฉ๋ฒ ์ ์ด ์ฒด๊ณ.
์ํผ ๋์ค
ํ๋ฌ๊ทธ์ธํ๋ ๋ค์ํ ์ด๋ฒคํธ ๋ฆฌ์ค๋ ๊ตฌํ์ ์ ๊ณตํ๋ ํจํค์ง
ํ๋ก์ธ์ค ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋ ๋ฐ ์ถฉ๋ ์ํ๋ฅผ ๋ชจ๋ํฐ๋งํ๋ ๋ฐ ๋์์ด ๋๋ ๊ฐ๋ ์:
http://pypi.python.org/pypi/superlance.
๋ง์คํฌ ์ฝ์ด ์ฌ์ฉ์ ๋ง์คํฌ: ํ์ฌ ํ๋ก์ธ์ค์ ํ์ผ ๋ชจ๋ ์์ฑ ๋ง์คํฌ๋ฅผ ์ค์ ํฉ๋๋ค.
http://en.wikipedia.org/wiki/Umask.
onworks.net ์๋น์ค๋ฅผ ์ฌ์ฉํ์ฌ ์จ๋ผ์ธ์ผ๋ก echo_supervisord_conf ์ฌ์ฉ