ืื ื’ืœื™ืชืฆืจืคืชื™ืชืกืคืจื“ื™

Ad


ืกืžืœ OnWorks

echo_supervisord_conf - ืžืงื•ื•ืŸ ื‘ืขื ืŸ

ื”ืคืขืœ echo_supervisord_conf ื‘ืกืคืง ืื™ืจื•ื— ื—ื™ื ืžื™ ืฉืœ OnWorks ื‘ืืžืฆืขื•ืช ืื•ื‘ื•ื ื˜ื• ืื•ื ืœื™ื™ืŸ, ืคื“ื•ืจื” ืื•ื ืœื™ื™ืŸ, ืืžื•ืœื˜ื•ืจ ืžืงื•ื•ืŸ ืฉืœ Windows ืื• ืืžื•ืœื˜ื•ืจ ืžืงื•ื•ืŸ ืฉืœ MAC OS

ื–ื•ื”ื™ ื”ืคืงื•ื“ื” echo_supervisord_conf ืฉื ื™ืชืŸ ืœื”ืจื™ืฅ ื‘ืกืคืง ื”ืื™ืจื•ื— ื”ื—ื™ื ืžื™ ืฉืœ OnWorks ื‘ืืžืฆืขื•ืช ืื—ืช ืžืชื—ื ื•ืช ื”ืขื‘ื•ื“ื” ื”ืžืงื•ื•ื ื•ืช ื”ืžืจื•ื‘ื•ืช ืฉืœื ื•, ื›ื’ื•ืŸ Ubuntu Online, Fedora Online, ืืžื•ืœื˜ื•ืจ ืžืงื•ื•ืŸ ืฉืœ Windows ืื• ืืžื•ืœื˜ื•ืจ ืžืงื•ื•ืŸ ืฉืœ MAC OS

ืชึธื›ึฐื ึดื™ืช:

ืฉืึตื


echo_supervisord_conf - ืชื™ืขื•ื“ ืชืฆื•ืจืช ืžืคืงื—

Supervisor ื”ื™ื ืžืขืจื›ืช ืœืงื•ื—/ืฉืจืช ื”ืžืืคืฉืจืช ืœืžืฉืชืžืฉื™ื” ืœื ื˜ืจ ื•ืœืฉืœื•ื˜ ื‘ืžืกืคืจ
ืฉืœ ืชื”ืœื™ื›ื™ื ื‘ืžืขืจื›ื•ืช ื”ืคืขืœื” ื“ืžื•ื™ื•ืช UNIX.

ื–ื” ื—ื•ืœืง ื›ืžื” ืžืื•ืชืŸ ืžื˜ืจื•ืช ืฉืœ ืชื•ื›ื ื™ื•ืช ื›ืžื• launchd, daemontools ื•-runit. ื‘ื ื™ื’ื•ื“
ืœื—ืœืง ืžื”ืชื•ื›ื ื™ื•ืช ื”ืœืœื• ื”ื™ื ืœื ื ื•ืขื“ื” ืœื”ื™ื•ืช ื›ืชื—ืœื™ืฃ ืœื”ืŸ init ื‘ืชื•ืจ "ืžื–ื”ื” ืชื”ืœื™ืš
1". ื‘ืžืงื•ื ื–ืืช ื”ื•ื ื ื•ืขื“ ืœืฉืžืฉ ืœืฉืœื™ื˜ื” ื‘ืชื”ืœื™ื›ื™ื ื”ืงืฉื•ืจื™ื ืœืคืจื•ื™ืงื˜ ืื• ื
ืœืงื•ื—, ื•ื”ื•ื ืืžื•ืจ ืœื”ืชื—ื™ืœ ื›ืžื• ื›ืœ ืชื•ื›ื ื™ืช ืื—ืจืช ื‘ื–ืžืŸ ื”ืืชื—ื•ืœ.

ืชื™ืขื•ื“


ื™ื•ืฆืจื™ื a ืชึฐืฆื•ึผืจึธื” ืฉืœื—
ืœืื—ืจ ื”ืฉืœืžืช ื”ืชืงื ืช ื”-Supervisor, ื”ืคืขืœ echo_supervisord_conf. ื–ื” ื™ื”ื™ื”
ื”ื“ืคืก ืงื•ื‘ืฅ ืชืฆื•ืจื” ืฉืœ Supervisor "ืœื“ื•ื’ืžื”" ืœ-stdout ืฉืœ ื”ืžืกื•ืฃ ืฉืœืš.

ื‘ืจื’ืข ืฉืชืจืื” ืืช ื”ืงื•ื‘ืฅ ืžื”ื“ื”ื“ ืœืžืกื•ืฃ ืฉืœืš, ื”ืคืขืœ ืžื—ื“ืฉ ืืช ื”ืคืงื•ื“ื” as
echo_supervisord_conf > /etc/supervisord.conf. ื–ื” ืœื ื™ืขื‘ื•ื“ ืื ืื™ืŸ ืœืš ืฉื•ืจืฉ
ื’ื™ืฉื” ืืœื™ื•.

ืื ืื™ืŸ ืœืš ื’ื™ืฉืช ืฉื•ืจืฉ, ืื• ืฉืืชื” ืžืขื“ื™ืฃ ืœื ืœืฉื™ื ืืช supervisord.conf ืงื•ื‘ืฅ ื‘
/etc/supervisord.conf`, ืืชื” ื™ื›ื•ืœ ืœืžืงื ืื•ืชื• ื‘ืกืคืจื™ื™ื” ื”ื ื•ื›ื—ื™ืช (echo_supervisord_conf >
supervisord.conf) ื•ื”ืชื—ืœ ืžึฐืคึทืงึตื—ึท ืขื -c ื“ื’ืœ ื›ื“ื™ ืœืฆื™ื™ืŸ ืืช
ืžื™ืงื•ื ืงื•ื‘ืฅ ื”ืชืฆื•ืจื”.

ืœื“ื•ื’ืžื”, ืžึฐืคึทืงึตื—ึท -c supervisord.conf. ืžืฉืชืžืฉ ื‘ -c ื”ื“ื’ืœ ืœืžืขืฉื” ืžื™ื•ืชืจ ื‘
ื”ืžืงืจื” ื”ื–ื”, ื›ื™ ืžึฐืคึทืงึตื—ึท ืžื—ืคืฉ ื‘ืกืคืจื™ื™ื” ื”ื ื•ื›ื—ื™ืช ืขื‘ื•ืจ ื supervisord.conf
ืœืคื ื™ ืฉื”ื•ื ืžื—ืคืฉ ืืช ื”ืงื•ื‘ืฅ ื‘ืžื™ืงื•ืžื™ื ืื—ืจื™ื, ืื‘ืœ ื–ื” ื™ืขื‘ื•ื“.

ื‘ืจื’ืข ืฉื™ืฉ ืœืš ืงื•ื‘ืฅ ืชืฆื•ืจื” ื‘ืžืขืจื›ืช ื”ืงื‘ืฆื™ื ืฉืœืš, ืืชื” ื™ื›ื•ืœ ืœื”ืชื—ื™ืœ ืœืฉื ื•ืช ืื•ืชื• ืœืงื•ื‘ืฅ ืฉืœืš
ื˜ึทืขึทื.

ืชึฐืฆื•ึผืจึธื” ืฉืœื—
ืงื•ื‘ืฅ ื”ืชืฆื•ืจื” ืฉืœ ื”ืžืคืงื— ื ืงืจื ื‘ื“ืจืš ื›ืœืœ supervisord.conf. ื”ื•ื ืžืฉืžืฉ ืขืœ ื™ื“ื™
ืฉื ื™ื”ื ืžึฐืคึทืงึตื—ึท ื• ืžืคืงื—. ืื ืื—ื“ ืžื”ืืคืœื™ืงืฆื™ื•ืช ืžื•ืคืขืœ ืœืœื -c
option (ื”ืืคืฉืจื•ืช ื”ืžืฉืžืฉืช ื›ื“ื™ ืœื•ืžืจ ืœืืคืœื™ืงืฆื™ื” ืืช ืฉื ืงื•ื‘ืฅ ื”ืชืฆื•ืจื”
ื‘ืื•ืคืŸ ืžืคื•ืจืฉ), ื”ืืคืœื™ืงืฆื™ื” ืชื—ืคืฉ ืงื•ื‘ืฅ ื‘ืฉื supervisord.conf ื‘ืชื•ืš
ื”ืžื™ืงื•ืžื™ื ื”ื‘ืื™ื, ื‘ืกื“ืจ ืฉืฆื•ื™ืŸ. ื–ื” ื™ืฉืชืžืฉ ื‘ืงื•ื‘ืฅ ื”ืจืืฉื•ืŸ ืฉื”ื•ื ืžื•ืฆื.

1. $CWD/supervisord.conf

2. $CWD/etc/supervisord.conf

3. /etc/supervisord.conf

4. ../etc/supervisord.conf (ื‘ื™ื—ืก ืœืงื•ื‘ืฅ ื”ื”ืคืขืœื”)

5. ../supervisord.conf (ื‘ื™ื—ืก ืœืงื•ื‘ืฅ ื”ื”ืคืขืœื”)

ื”ืขืจื”:
ื—ืœืง ืžื”ื”ืคืฆื•ืช ื›ื•ืœืœื•ืช ืืช Supervisor ืขื ื”ืชืืžื•ืช ืื™ืฉื™ื•ืช ืžืฉืœื”ืŸ. ืืœื”
ื’ืจืกืื•ืช ืฉืฉื•ื ื• ืฉืœ Supervisor ืขืฉื•ื™ื•ืช ืœื˜ืขื•ืŸ ืืช ืงื•ื‘ืฅ ื”ืชืฆื•ืจื” ืžืžืงื•ืžื•ืช ืื—ืจื™ื
ืžืืœื” ื”ืžืชื•ืืจื™ื ื›ืืŸ. ื™ืฉ ืœืฆื™ื™ืŸ ื›ื™ ื—ื‘ื™ืœื•ืช ืื•ื‘ื•ื ื˜ื• ื ืžืฆืื• ื‘ืฉื™ืžื•ืฉ
/etc/supervisor/supervisord.conf.

ืฉืœื— ืคื•ึผืจืžึธื˜
supervisord.conf ื”ื•ื ืงื•ื‘ืฅ ื‘ืกื’ื ื•ืŸ Windows-INI (Python ConfigParser). ื™ืฉ ืœื• ืงื˜ืขื™ื (ื›ืœ ืื—ื“
ืžืกื•ืžืŸ ืขืœ ื™ื“ื™ ื [ื›ื•ืชืจืช]) ื•ืฆืžื“ื™ ืžืคืชื—/ืขืจืš ื‘ืชื•ืš ื”ืงื˜ืขื™ื. ื”ืกืขื™ืคื™ื ื•ืฉืœื”ื
ืขืจื›ื™ื ืžื•ืชืจื™ื ืžืชื•ืืจื™ื ืœื”ืœืŸ.

ืกื‘ื™ื‘ื” ืžืฉืชื ื™ื
ืžืฉืชื ื™ ืกื‘ื™ื‘ื” ืฉืงื™ื™ืžื™ื ื‘ืกื‘ื™ื‘ื” ื‘ืื•ืชื• ื–ืžืŸ ืžึฐืคึทืงึตื—ึท is
ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘-start ื‘ืงื•ื‘ืฅ ื”ืชืฆื•ืจื” ื‘ืืžืฆืขื•ืช ืชื—ื‘ื™ืจ ื‘ื™ื˜ื•ื™ ืžื—ืจื•ื–ืช Python
%(ENV_X)s:

[ืชื•ื›ื ื™ืช:ื“ื•ื’ืžื”]
command=/usr/bin/example --loglevel=%(ENV_LOGLEVEL)s

ื‘ื“ื•ื’ืžื” ืœืžืขืœื”, ื”ื‘ื™ื˜ื•ื™ %(ENV_LOGLEVEL)s ื™ื•ืจื—ื‘ ืœืขืจืš ืฉืœ
ืžืฉืชื ื” ื”ืกื‘ื™ื‘ื” LOGLEVEL.

ื”ืขืจื”:
ื‘-Supervisor 3.2 ื•ืื™ืœืš, %(ENV_X)s ื‘ื™ื˜ื•ื™ื™ื ื ืชืžื›ื™ื ื‘ื›ืœ ื”ืืคืฉืจื•ื™ื•ืช. ื‘
ื’ืจืกืื•ืช ืงื•ื“ืžื•ืช, ื—ืœืง ืžื”ืืคืฉืจื•ื™ื•ืช ืชื•ืžื›ื•ืช ื‘ื”ืŸ, ืืš ืจื•ื‘ืŸ ืœื. ืขื™ื™ืŸ ื‘ืชื™ืขื•ื“ ืขื‘ื•ืจ
ื›ืœ ืืคืฉืจื•ืช ืœืžื˜ื”.

[unix_http_server] ืกืขื™ืฃ ื”ื’ื“ืจื•ืช
ืืœ ื”ืื ื™ supervisord.conf ื”ืงื•ื‘ืฅ ืžื›ื™ืœ ืงื˜ืข ื‘ืฉื [unix_http_server] ืชื—ืช ืืฉืจ
ืคืจืžื˜ืจื™ ืชืฆื•ืจื” ืขื‘ื•ืจ ืฉืจืช HTTP ืฉืžืื–ื™ืŸ ื‘ืฉืงืข ืชื—ื•ื UNIX ืฆืจื™ื›ื™ื ืœื”ื™ื•ืช
ืžื•ึผื›ื ึธืก. ืื ืœืงื•ื‘ืฅ ื”ืชืฆื•ืจื” ืื™ืŸ [unix_http_server] ืกืขื™ืฃ, ืชื—ื•ื UNIX
ืฉืจืช HTTP socket ืœื ื™ื•ืคืขืœ. ืขืจื›ื™ ื”ืชืฆื•ืจื” ื”ืžื•ืชืจื™ื ื”ื ื›
ื”ื‘ื.

[unix_http_server] ืกืขื™ืฃ ืขืจื›ื™ื
ืคื™ืœื”
ื ืชื™ื‘ ืœืฉืงืข ืชื—ื•ื UNIX (ืœืžืฉืœ /tmp/supervisord.sock) ืขืœ ืื™ื–ื” ืžืคืงื— ื™ื”ื™ื”
ื”ืื–ืŸ ืœื‘ืงืฉื•ืช HTTP/XML-RPC. ืžืคืงื— ืžืฉืชืžืฉ ื‘-XML-RPC ื›ื“ื™ ืœืชืงืฉืจ ืื™ืชื•
ืžึฐืคึทืงึตื—ึท ืžืขืœ ื”ื ืžืœ ื”ื–ื”. ืืคืฉืจื•ืช ื–ื• ื™ื›ื•ืœื” ืœื›ืœื•ืœ ืืช ื”ืขืจืš %(ื›ืืŸ)s, ืฉืžืชืจื—ื‘
ืœืกืคืจื™ื™ื” ืฉื‘ื” ืžึฐืคึทืงึตื—ึท ื ืžืฆื ืงื•ื‘ืฅ ืชืฆื•ืจื”.

ื‘ึผึฐืจึดื™ืจึทืช ืžึถื—ื“ึธืœ: ืืฃ ืื—ื“.

ื“ืจื•ืฉ: ืœื.

ื”ืฆื™ื’: 3.0

chmod
ืฉื ื” ืืช ืกื™ื‘ื™ื•ืช ืžืฆื‘ ื”ืจืฉืืช UNIX ืฉืœ ืฉืงืข ืชื—ื•ื UNIX ืœืขืจืš ื–ื” ื‘
ืืชื—ื•ืœ

ื‘ึผึฐืจึดื™ืจึทืช ืžึถื—ื“ึธืœ: 0700

ื“ืจื•ืฉ: ืœื.

ื”ืฆื™ื’: 3.0

chown
ืฉื ื” ืืช ื”ืžืฉืชืžืฉ ื•ื”ืงื‘ื•ืฆื” ืฉืœ ืงื•ื‘ืฅ ื”-socket ืœืขืจืš ื–ื”. ื™ื›ื•ืœ ืœื”ื™ื•ืช ืฉื ืžืฉืชืžืฉ UNIX
(ืœึฐืžึธืฉืึธืœ ื›ืจื™ื–ืžื”) ืื• ืฉื ืžืฉืชืžืฉ ื•ืงื‘ื•ืฆื” UNIX ืžื•ืคืจื“ื™ื ื‘ืืžืฆืขื•ืช ื ืงื•ื“ืชื™ื™ื (ืœืžืฉืœ ื›ืจื™ืกื: ื’ืœื’ืœ).

ื‘ึผึฐืจึดื™ืจึทืช ืžึถื—ื“ึธืœ: ื”ืฉืชืžืฉ ื‘ืฉื ื”ืžืฉืชืžืฉ ื•ื‘ืงื‘ื•ืฆื” ืฉืœ ื”ืžืฉืชืžืฉ ืฉืžืชื—ื™ืœ Supervisord.

ื“ืจื•ืฉ: ืœื.

ื”ืฆื™ื’: 3.0

ืฉื ืžืฉืชืžืฉ
ืฉื ื”ืžืฉืชืžืฉ ื”ื ื“ืจืฉ ืœืื™ืžื•ืช ืœืฉืจืช HTTP ื–ื”.

ื‘ึผึฐืจึดื™ืจึทืช ืžึถื—ื“ึธืœ: ืื™ืŸ ืฆื•ืจืš ื‘ืฉื ืžืฉืชืžืฉ.

ื“ืจื•ืฉ: ืœื.

ื”ืฆื™ื’: 3.0

ืกื™ืกืžื
ื”ืกื™ืกืžื” ื”ื“ืจื•ืฉื” ืœืื™ืžื•ืช ืœืฉืจืช HTTP ื–ื”. ื–ื” ื™ื›ื•ืœ ืœื”ื™ื•ืช ื˜ืงืกื˜ ื‘ืจื•ืจ
ืกื™ืกืžื”, ืื• ืฉื ื™ืชืŸ ืœืฆื™ื™ืŸ ื›-hash SHA-1 ืื ื”ืงื™ื“ื•ืžืช ืฉืœ ื”ืžื—ืจื•ื–ืช {SHA}. ืคื•ืจื•ื
ื“ื•ื’ืžื, {SHA}82ab876d1387bfafe46cc1c8a2ef074eae50cb1d ื”ื™ื ื”ื’ืจืกื” ื”ืžืื•ื—ืกื ืช ื‘-SHA ืฉืœ
ืกื™ืกืžื "ื”ืกื™ืกืžื”".

ืฉื™ื ืœื‘ ืฉืกื™ืกืžื” ืžื’ื•ื‘ื‘ืช ื—ื™ื™ื‘ืช ืœื”ื™ื•ืช ื‘ืคื•ืจืžื˜ hex.

ื‘ึผึฐืจึดื™ืจึทืช ืžึถื—ื“ึธืœ: ืื™ืŸ ืฆื•ืจืš ื‘ืกื™ืกืžื”.

ื“ืจื•ืฉ: ืœื.

ื”ืฆื™ื’: 3.0

[unix_http_server] ืกืขื™ืฃ ื“ื•ื’ืžื”
[unix_http_server]
file = /tmp/supervisor.sock
chmod = 0777
chown= ืืฃ ืื—ื“:nogroup
ืฉื ืžืฉืชืžืฉ = ืžืฉืชืžืฉ
ืกื™ืกืžื = 123

[inet_http_server] ืกืขื™ืฃ ื”ื’ื“ืจื•ืช
ืืœ ื”ืื ื™ supervisord.conf ื”ืงื•ื‘ืฅ ืžื›ื™ืœ ืงื˜ืข ื‘ืฉื [inet_http_server] ืชื—ืช ืืฉืจ
ืคืจืžื˜ืจื™ ืชืฆื•ืจื” ืขื‘ื•ืจ ืฉืจืช HTTP ืฉืžืื–ื™ืŸ ืœืฉืงืข TCP (ืื™ื ื˜ืจื ื˜) ืฆืจื™ื›ื™ื
ืœื”ื™ื•ืช ืžื•ื›ื ืก. ืื ืœืงื•ื‘ืฅ ื”ืชืฆื•ืจื” ืื™ืŸ [inet_http_server] ืกืขื™ืฃ, HTTP ืฉืœ inet
ื”ืฉืจืช ืœื ื™ื•ืคืขืœ. ืขืจื›ื™ ื”ืชืฆื•ืจื” ื”ืžื•ืชืจื™ื ื”ื ื›ื“ืœืงืžืŸ.

[inet_http_server] ืกืขื™ืฃ ืขืจื›ื™ื
ื ืžืœ
ืขืจืš TCP host:port ืื• (ืœืžืฉืœ 127.0.0.1:9001) ืฉืขืœื™ื• ื™ืงืฉื™ื‘ ื”ืžืคืงื—
ื‘ืงืฉื•ืช HTTP/XML-RPC. ืžืคืงื— ื™ืฉืชืžืฉ ื‘-XML-RPC ื›ื“ื™ ืœืชืงืฉืจ ืื™ืชื• ืžึฐืคึทืงึตื—ึท
ืžืขืœ ื”ื ืžืœ ื”ื–ื”. ื›ื“ื™ ืœื”ืื–ื™ืŸ ื‘ื›ืœ ื”ืžืžืฉืงื™ื ื‘ืžื›ื•ื ื”, ื”ืฉืชืžืฉ : 9001 or *: 9001.

ื‘ึผึฐืจึดื™ืจึทืช ืžึถื—ื“ึธืœ: ืื™ืŸ ื‘ืจื™ืจืช ืžื—ื“ืœ.

ื“ืจื•ืฉ: ื›ืŸ.

ื”ืฆื™ื’: 3.0

ืฉื ืžืฉืชืžืฉ
ืฉื ื”ืžืฉืชืžืฉ ื”ื ื“ืจืฉ ืœืื™ืžื•ืช ืœืฉืจืช HTTP ื–ื”.

ื‘ึผึฐืจึดื™ืจึทืช ืžึถื—ื“ึธืœ: ืื™ืŸ ืฆื•ืจืš ื‘ืฉื ืžืฉืชืžืฉ.

ื“ืจื•ืฉ: ืœื.

ื”ืฆื™ื’: 3.0

ืกื™ืกืžื
ื”ืกื™ืกืžื” ื”ื“ืจื•ืฉื” ืœืื™ืžื•ืช ืœืฉืจืช HTTP ื–ื”. ื–ื” ื™ื›ื•ืœ ืœื”ื™ื•ืช ื˜ืงืกื˜ ื‘ืจื•ืจ
ืกื™ืกืžื”, ืื• ืฉื ื™ืชืŸ ืœืฆื™ื™ืŸ ื›-hash SHA-1 ืื ื”ืงื™ื“ื•ืžืช ืฉืœ ื”ืžื—ืจื•ื–ืช {SHA}. ืคื•ืจื•ื
ื“ื•ื’ืžื, {SHA}82ab876d1387bfafe46cc1c8a2ef074eae50cb1d ื”ื™ื ื”ื’ืจืกื” ื”ืžืื•ื—ืกื ืช ื‘-SHA ืฉืœ
ืกื™ืกืžื "ื”ืกื™ืกืžื”".

ืฉื™ื ืœื‘ ืฉืกื™ืกืžื” ืžื’ื•ื‘ื‘ืช ื—ื™ื™ื‘ืช ืœื”ื™ื•ืช ื‘ืคื•ืจืžื˜ hex.

ื‘ึผึฐืจึดื™ืจึทืช ืžึถื—ื“ึธืœ: ืื™ืŸ ืฆื•ืจืš ื‘ืกื™ืกืžื”.

ื“ืจื•ืฉ: ืœื.

ื”ืฆื™ื’: 3.0

[inet_http_server] ืกืขื™ืฃ ื“ื•ื’ืžื”
[inet_http_server]
ื™ืฆื™ืื” = 127.0.0.1:9001
ืฉื ืžืฉืชืžืฉ = ืžืฉืชืžืฉ
ืกื™ืกืžื = 123

[ืžืคืงื—] ืกืขื™ืฃ ื”ื’ื“ืจื•ืช
ืืœ ื”ืื ื™ supervisord.conf ื”ืงื•ื‘ืฅ ืžื›ื™ืœ ืงื˜ืข ื‘ืฉื [ืžืคืงื—] ื‘ืื™ืœื• ื”ื’ื“ืจื•ืช ื’ืœื•ื‘ืœื™ื•ืช
ืžืงื•ืฉืจ ืœ ืžึฐืคึทืงึตื—ึท ื™ืฉ ืœื”ื›ื ื™ืก ืชื”ืœื™ืš. ืืœื” ื”ื ื›ื“ืœืงืžืŸ.

[ืžืคืงื—] ืกืขื™ืฃ ืขืจื›ื™ื
ืงื•ื‘ืฅ ืœื•ื’
ื”ื ืชื™ื‘ ืœื™ื•ืžืŸ ื”ืคืขื™ืœื•ืช ืฉืœ ืชื”ืœื™ืš ื”ืžืคืงื—. ืืคืฉืจื•ืช ื–ื• ื™ื›ื•ืœื” ืœื›ืœื•ืœ ืืช
ืขืจืš %(ื›ืืŸ)s, ืฉืžืชืจื—ื‘ ืœืกืคืจื™ื™ื” ืฉื‘ื” ืชืฆื•ืจืช ื”ืžืคืงื—
ื”ืงื•ื‘ืฅ ื ืžืฆื.

ื‘ึผึฐืจึดื™ืจึทืช ืžึถื—ื“ึธืœ: $CWD/supervisord.log

ื“ืจื•ืฉ: ืœื.

ื”ืฆื™ื’: 3.0

logfile_maxbytes
ื”ืžืกืคืจ ื”ืžืจื‘ื™ ืฉืœ ื‘ืชื™ื ืฉืงื•ื‘ืฅ ื™ื•ืžืŸ ื”ืคืขื™ืœื•ืช ืขืฉื•ื™ ืœืฆืจื•ืš ืœืคื ื™ ื›ืŸ
ืžืกื•ื‘ื‘ (ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ืžื›ืคื™ืœื™ ืกื™ื•ืžืช ื›ืžื• "KB", "MB" ื•-"GB" ื‘ืขืจืš). ืžึทืขึฒืจึถื›ึถืช
ืขืจืš ื–ื” ืœ-0 ื›ื“ื™ ืœืฆื™ื™ืŸ ื’ื•ื“ืœ ื™ื•ืžืŸ ื‘ืœืชื™ ืžื•ื’ื‘ืœ.

ื‘ึผึฐืจึดื™ืจึทืช ืžึถื—ื“ึธืœ: 50MB

ื“ืจื•ืฉ: ืœื.

ื”ืฆื™ื’: 3.0

logfile_backups
ืžืกืคืจ ื”ื’ื™ื‘ื•ื™ื™ื ืฉื™ืฉ ืœืฉืžื•ืจ ื‘ืกื‘ื™ื‘ื” ื›ืชื•ืฆืื” ืžืกื™ื‘ื•ื‘ ืงื•ื‘ืฆื™ ื™ื•ืžืŸ ืคืขื™ืœื•ืช. ืื ืžื•ื’ื“ืจ
ืœ-0, ืœื ื™ื™ืฉืžืจื• ื’ื™ื‘ื•ื™ื™ื.

ื‘ึผึฐืจึดื™ืจึทืช ืžึถื—ื“ึธืœ: 10

ื“ืจื•ืฉ: ืœื.

ื”ืฆื™ื’: 3.0

ืจืžืช ื™ื•ืžืŸ
ืจืžืช ื”ืจื™ืฉื•ื, ืžื›ืชื™ื‘ื” ืžื” ื›ืชื•ื‘ ืœื™ื•ืžืŸ ื”ืคืขื™ืœื•ืช ืฉืœ ื”ืžืคืงื—. ืื—ื“ ืž
ืงืจื™ื˜ื™, ืฉื’ื™ืื”, ืœื”ื–ื”ื™ืจ, ืžื™ื“ืข, ื‘ืื’ื™ื, ืœื”ืชื—ืงื•ืช, ืื• ืœึฐืคึทื˜ึฐืคึตื˜. ืฉื™ืžื• ืœื‘ ืฉื‘ืจืžืช ื”ื™ื•ืžืŸ ื‘ืื’ื™ื,
ืงื•ื‘ืฅ ื™ื•ืžืŸ ื”-Supervisord ื™ืชืขื“ ืืช ืคืœื˜ stderr/stdout ืฉืœ ืชื”ืœื™ื›ื™ ื”ืฆืืฆื ืฉืœื•
ื•ืžื™ื“ืข ืžื•ืจื—ื‘ ืขืœ ืฉื™ื ื•ื™ื™ื ื‘ืžืฆื‘ ื”ืชื”ืœื™ืš, ืฉื”ื•ื ืฉื™ืžื•ืฉื™ ืœื ื™ืคื•ื™ ื‘ืื’ื™ื ื
ืชื”ืœื™ืš ืฉืœื ืžืชื—ื™ืœ ื›ืžื• ืฉืฆืจื™ืš. ืจืื” ื’ื: activity_log_levels.

ื‘ึผึฐืจึดื™ืจึทืช ืžึถื—ื“ึธืœ: ืžื™ื“ืข

ื“ืจื•ืฉ: ืœื.

ื”ืฆื™ื’: 3.0

pidfile
ื”ืžื™ืงื•ื ืฉื‘ื• ื”ืžืคืงื— ืฉื•ืžืจ ืืช ืงื•ื‘ืฅ ื”-Pid ืฉืœื•. ืืคืฉืจื•ืช ื–ื• ื™ื›ื•ืœื” ืœื›ืœื•ืœ ืืช
ืขืจืš %(ื›ืืŸ)s, ืฉืžืชืจื—ื‘ ืœืกืคืจื™ื™ื” ืฉื‘ื” ืชืฆื•ืจืช ื”ืžืคืงื—
ื”ืงื•ื‘ืฅ ื ืžืฆื.

ื‘ึผึฐืจึดื™ืจึทืช ืžึถื—ื“ึธืœ: $CWD/supervisord.pid

ื“ืจื•ืฉ: ืœื.

ื”ืฆื™ื’: 3.0

ืื•ืžืกืง
ื”ืื•ืžืกืง ืฉืœ ืชื”ืœื™ืš ื”ืžืคืงื—.

ื‘ึผึฐืจึดื™ืจึทืช ืžึถื—ื“ึธืœ: 022

ื“ืจื•ืฉ: ืœื.

ื”ืฆื™ื’: 3.0

nodaemon
ืื ื–ื” ื ื›ื•ืŸ, ื”ืžืคืงื— ื™ืชื—ื™ืœ ื‘ืงื“ืžืช ื”ื‘ืžื” ื‘ืžืงื•ื ืœืขืฉื•ืช ื“ืžื•ื ื™ื–ืฆื™ื”.

ื‘ึผึฐืจึดื™ืจึทืช ืžึถื—ื“ึธืœ: ืฉืงืจ

ื“ืจื•ืฉ: ืœื.

ื”ืฆื™ื’: 3.0

minfds
ื”ืžืกืคืจ ื”ืžื™ื ื™ืžืœื™ ืฉืœ ืžืชืืจื™ ืงื‘ืฆื™ื ืฉื—ื™ื™ื‘ื™ื ืœื”ื™ื•ืช ื–ืžื™ื ื™ื ืœืคื ื™ ืฉื”ืžืคืงื— ื™ืขืฉื” ื–ืืช
ืœื”ืชื—ื™ืœ ื‘ื”ืฆืœื—ื”. ืงืจื™ืื” ืœ-setrlimit ืชืชื‘ืฆืข ื›ื“ื™ ืœื ืกื•ืช ืœื”ืขืœื•ืช ืืช ื”-soft and
ื’ื‘ื•ืœื•ืช ืงืฉื™ื ืฉืœ ืชื”ืœื™ืš ื”ืžืคืงื— ืฉื™ืฉ ืœืขืžื•ื“ ื‘ื”ื minfds. ื”ื’ื‘ื•ืœ ื”ืงืฉื” ืขืฉื•ื™ ืœื”ื™ื•ืช ืจืง
ืžื•ืขืœื” ืื ื”-Supervisord ืคื•ืขืœ ื›ืฉื•ืจืฉ. supervisord ืžืฉืชืžืฉ ื‘ืชื™ืื•ืจื™ ืงื‘ืฆื™ื ื‘ืื•ืคืŸ ื ืจื—ื‘, ื•
ื™ื›ื ืก ืœืžืฆื‘ ื›ืฉืœ ื›ืืฉืจ ืœื ื ื™ืชืŸ ืœื”ืฉื™ื’ ืื•ืชื• ืžืžืขืจื›ืช ื”ื”ืคืขืœื”, ืื– ื–ื” ืฉื™ืžื•ืฉื™ ืœื”ื™ื•ืช
ืžืกื•ื’ืœื™ื ืœืฆื™ื™ืŸ ืขืจืš ืžื™ื ื™ืžืœื™ ื›ื“ื™ ืœื”ื‘ื˜ื™ื— ืฉื”ื•ื ืœื ื™ื™ื’ืžืจ ืžื”ื ื‘ืžื”ืœืš ื”ื‘ื™ืฆื•ืข.
ืืคืฉืจื•ืช ื–ื• ืฉื™ืžื•ืฉื™ืช ื‘ืžื™ื•ื—ื“ ื‘-Solaris, ืฉื™ืฉ ืœื” ืžื’ื‘ืœื” ื ืžื•ื›ื” ืฉืœ FD ืœื›ืœ ืชื”ืœื™ืš ื‘-
ื‘ืจื™ืจืช ื”ืžื—ื“ืœ.

ื‘ึผึฐืจึดื™ืจึทืช ืžึถื—ื“ึธืœ: 1024

ื“ืจื•ืฉ: ืœื.

ื”ืฆื™ื’: 3.0

minprocs
ื”ืžืกืคืจ ื”ืžื™ื ื™ืžืœื™ ืฉืœ ืžืชืืจื™ ืชื”ืœื™ืš ืฉื—ื™ื™ื‘ื™ื ืœื”ื™ื•ืช ื–ืžื™ื ื™ื ืœืคื ื™ ื”ืžืคืงื—
ื™ืชื—ื™ืœ ื‘ื”ืฆืœื—ื”. ืงืจื™ืื” ืœ-setrlimit ืชืชื‘ืฆืข ื›ื“ื™ ืœื ืกื•ืช ืœื”ืขืœื•ืช ืืช ื”-soft
ื•ืžื’ื‘ืœื•ืช ืงืฉื•ืช ืฉืœ ืชื”ืœื™ืš ื”ืžืคืงื— ืœืกื™ืคื•ืง minprocs. ื”ื’ื‘ื•ืœ ื”ืงืฉื” ืขืฉื•ื™
ื™ื•ืขืœื” ืจืง ืื ื”-Supervisord ืžื•ืคืขืœืช ื›ืฉื•ืจืฉ. ื”ืžืคืงื— ื™ื›ื ืก ืœืžืฆื‘ ื›ืฉืœ
ื›ืืฉืจ ืžืชืืจื™ ื”ืชื”ืœื™ืš ื ื’ืžืจื™ื ืœืžืขืจื›ืช ื”ื”ืคืขืœื”, ืื– ื›ื“ืื™ ืœื”ื‘ื˜ื™ื— ืืช ื–ื” ืžืกืคื™ืง
ืžืชืืจื™ ืชื”ืœื™ืš ื–ืžื™ื ื™ื ืขืœ ืžึฐืคึทืงึตื—ึท ืืชื—ื•ืœ

ื‘ึผึฐืจึดื™ืจึทืช ืžึถื—ื“ึธืœ: 200

ื“ืจื•ืฉ: ืœื.

ื”ืฆื™ื’: 3.0

nocleanup
ืžื ืข ืžื”ืžืคืงื— ืœื ืงื•ืช ื›ืœ ืงื™ื™ื AUTO ืงื‘ืฆื™ ื™ื•ืžืŸ ื™ืœื“ื™ื ื‘ื–ืžืŸ ื”ื”ืคืขืœื”.
ืฉื™ืžื•ืฉื™ ืœื ื™ืคื•ื™ ื‘ืื’ื™ื.

ื‘ึผึฐืจึดื™ืจึทืช ืžึถื—ื“ึธืœ: ืฉืงืจ

ื“ืจื•ืฉ: ืœื.

ื”ืฆื™ื’: 3.0

childlogdir
ื”ืกืคืจื™ื™ื” ื”ืžืฉืžืฉืช ืขื‘ื•ืจ AUTO ืงื‘ืฆื™ ื™ื•ืžืŸ ื™ืœื“ื™ื. ืืคืฉืจื•ืช ื–ื• ื™ื›ื•ืœื” ืœื›ืœื•ืœ ืืช ื”ืขืจืš
%(ื›ืืŸ)s, ืฉืžืชืจื—ื‘ ืœืกืคืจื™ื™ื” ืฉื‘ื” ืžึฐืคึทืงึตื—ึท ืงื•ื‘ืฅ ืชืฆื•ืจื”
ื ืžืฆื.

ื‘ึผึฐืจึดื™ืจึทืช ืžึถื—ื“ึธืœ: ื”ืขืจืš ืฉืœ ืคื™ื™ืชื•ืŸ tempfile.get_tempdir()

ื“ืจื•ืฉ: ืœื.

ื”ืฆื™ื’: 3.0

ื”ืžืฉืชืžืฉ
ืœึฐื”ื•ึนืจื•ึนืช ืžึฐืคึทืงึตื—ึท ื›ื“ื™ ืœื”ืขื‘ื™ืจ ืžืฉืชืžืฉื™ื ืœื—ืฉื‘ื•ืŸ ืžืฉืชืžืฉ ื–ื” ื‘-UNIX ืœืคื ื™ ื‘ื™ืฆื•ืข ืคืขื•ืœื” ื›ืœืฉื”ื™
ืขื™ื‘ื•ื“ ืžืฉืžืขื•ืชื™. ื ื™ืชืŸ ืœื”ื—ืœื™ืฃ ืืช ื”ืžืฉืชืžืฉ ืจืง ืื ืžึฐืคึทืงึตื—ึท ืžืชื—ื™ืœ ื‘ืชื•ืจ ื”
ืžืฉืชืžืฉ ืฉื•ืจืฉ. ืื ืžึฐืคึทืงึตื—ึท ืœื ื™ื›ื•ืœ ืœื”ื—ืœื™ืฃ ืžืฉืชืžืฉื™ื, ื–ื” ืขื“ื™ื™ืŸ ื™ืžืฉื™ืš ืื‘ืœ ื™ื›ืชื•ื‘ ื
ื”ื•ื“ืขืช ื™ื•ืžืŸ ื‘- ืงืจื™ื˜ื™ ืจืžื” ืฉืื•ืžืจ ืฉื–ื” ืœื ื™ื›ื•ืœ ืœื”ื•ืจื™ื“ ื”ืจืฉืื•ืช.

ื‘ึผึฐืจึดื™ืจึทืช ืžึถื—ื“ึธืœ: ืืœ ืชื—ืœื™ืฃ ืžืฉืชืžืฉื™ื

ื“ืจื•ืฉ: ืœื.

ื”ืฆื™ื’: 3.0

ื‘ืกืคืจื™ื™ื”
ืžืชื™ ืžึฐืคึทืงึตื—ึท ื“ืžื•ื ื™ื–ื–, ืขื‘ื•ืจ ืœืกืคืจื™ื™ื” ื–ื•. ืืคืฉืจื•ืช ื–ื• ื™ื›ื•ืœื” ืœื›ืœื•ืœ ืืช
ืขืจืš %(ื›ืืŸ)s, ืฉืžืชืจื—ื‘ ืœืกืคืจื™ื™ื” ืฉื‘ื” ืžึฐืคึทืงึตื—ึท ืชืฆื•ืจื”
ื”ืงื•ื‘ืฅ ื ืžืฆื.

ื‘ึผึฐืจึดื™ืจึทืช ืžึถื—ื“ึธืœ: ืืœ ืชืงืœื™ื˜ื•

ื“ืจื•ืฉ: ืœื.

ื”ืฆื™ื’: 3.0

ืกื˜ืจื™ืค_ืื ืกื™
ื”ืกืจ ืืช ื›ืœ ืจืฆืคื™ ื”ื‘ืจื™ื—ื” ืฉืœ ANSI ืžืงื•ื‘ืฆื™ ื™ื•ืžืŸ ื™ืœื“ื™ื.

ื‘ึผึฐืจึดื™ืจึทืช ืžึถื—ื“ึธืœ: ืฉืงืจ

ื“ืจื•ืฉ: ืœื.

ื”ืฆื™ื’: 3.0

ืกื‘ื™ื‘ื”
ืจืฉื™ืžื” ืฉืœ ื–ื•ื’ื•ืช ืžืคืชื—/ืขืจืš ื‘ื˜ื•ืคืก KEY="val",KEY2="val2" ืฉื™ื•ืฆื‘ ื‘
ืžึฐืคึทืงึตื—ึท ืกื‘ื™ื‘ืช ื”ืชื”ืœื™ืš (ื•ื›ืชื•ืฆืื” ืžื›ืš ื‘ื›ืœ ืชื”ืœื™ืš ื”ื™ืœื“ ืฉืœื•"
ืกื‘ื™ื‘ื•ืช). ืืคืฉืจื•ืช ื–ื• ื™ื›ื•ืœื” ืœื›ืœื•ืœ ืืช ื”ืขืจืš %(ื›ืืŸ)s, ืฉืžืชืจื—ื‘ ืœ-
ืกืคืจื™ื™ื” ืฉื‘ื” ื ืžืฆื ืงื•ื‘ืฅ ื”ืชืฆื•ืจื” ืฉืœ ื”ืžืคืงื—. ืขืจื›ื™ื ื”ืžื›ื™ืœื™ื
ื™ืฉ ืœืฆื˜ื˜ ืชื•ื•ื™ื ืฉืื™ื ื ืืœืคืื ื•ืžืจื™ื™ื (ืœืžืฉืœ KEY="val:123",KEY2="val,456").
ืื—ืจืช, ืฆื™ื˜ื•ื˜ ื”ืขืจื›ื™ื ื”ื•ื ืื•ืคืฆื™ื•ื ืœื™ ืืš ืžื•ืžืœืฅ. ืœื‘ืจื•ื— ืื—ื•ื–
ืชื•ื•ื™ื, ืคืฉื•ื˜ ื”ืฉืชืžืฉ ื‘ืฉื ื™ื™ื. (ืœึฐืžึธืฉืึธืœ URI="/first%%20name") ื”ืขืจื•ืช ืฉืชืชื™-ืชื”ืœื™ื›ื™ื ื™ื”ื™ื•
ื™ื•ืจืฉ ืืช ืžืฉืชื ื™ ื”ืกื‘ื™ื‘ื” ืฉืœ ื”ืžืขื˜ืคืช ืฉืฉื™ืžืฉื” ืœื”ืชื—ืœื” ืžึฐืคึทืงึตื—ึท ื—ื•ืฅ ืž ื”
ืืœื” ืฉื ื“ืจื•ืกื™ื ื›ืืŸ ื•ื‘ืชื•ืš ื”ืชื•ื›ื ื™ืช ืกื‘ื™ื‘ื” ืื•ึนืคึผึฐืฆึดื™ึธื”. ืœึดืจึฐืื•ึนืช
subprocess_environment.

ื‘ึผึฐืจึดื™ืจึทืช ืžึถื—ื“ึธืœ: ืื™ืŸ ืขืจื›ื™ื

ื“ืจื•ืฉ: ืœื.

ื”ืฆื™ื’: 3.0

ืžื–ื”ื”
ืžื—ืจื•ื–ืช ื”ืžื–ื”ื” ืขื‘ื•ืจ ืชื”ืœื™ืš ืžืคืงื— ื–ื”, ื”ืžืฉืžืฉืช ืืช ืžืžืฉืง ื”-RPC.

ื‘ึผึฐืจึดื™ืจึทืช ืžึถื—ื“ึธืœ: ืžืคืงื—

ื“ืจื•ืฉ: ืœื.

ื”ืฆื™ื’: 3.0

[ืžืคืงื—] ืกืขื™ืฃ ื“ื•ื’ืžื”
[ืžืคืงื—]
logfile = /tmp/supervisord.log
logfile_maxbytes = 50MB
logfile_backups=10
loglevel = ืžื™ื“ืข
pidfile = /tmp/supervisord.pid
nodaemon = ืฉืงืจ
minfds = 1024
minprocs = 200
umask = 022
ืžืฉืชืžืฉ = ื›ืจื™ืกืžืก
ืžื–ื”ื” = ืžืคืงื—
ืกืคืจื™ื™ื” = / Tmp
nocleanup = ื ื›ื•ืŸ
childlogdir = / Tmp
strip_ansi = false
ืกื‘ื™ื‘ื” = KEY1="value1",KEY2="value2"

[ืกื•ืคืจvisorctl] ืกืขื™ืฃ ื”ื’ื“ืจื•ืช
ืงื•ื‘ืฅ ื”ืชืฆื•ืจื” ืขืฉื•ื™ ืœื”ื›ื™ืœ ื”ื’ื“ืจื•ืช ืขื‘ื•ืจ ืžืคืงื— ืงืœื™ืคื” ืื™ื ื˜ืจืืงื˜ื™ื‘ื™ืช
ืชื›ื ื™ืช. ืืคืฉืจื•ื™ื•ืช ืืœื” ืžืคื•ืจื˜ื•ืช ืœื”ืœืŸ.

[ืกื•ืคืจvisorctl] ืกืขื™ืฃ ืขืจื›ื™ื
serverurl
ื›ืชื•ื‘ืช ื”-URL ืฉื‘ื” ื™ืฉ ืœื”ืฉืชืžืฉ ื›ื“ื™ ืœื’ืฉืช ืœืฉืจืช ื”ืžืคืงื—, ืœืžืฉืœ
http://localhost: 9001. ืขื‘ื•ืจ ืฉืงืขื™ ืชื—ื•ื UNIX, ื”ืฉืชืžืฉ
unix:///absolute/path/to/file.sock.

ื‘ึผึฐืจึดื™ืจึทืช ืžึถื—ื“ึธืœ: http://localhost: 9001

ื“ืจื•ืฉ: ืœื.

ื”ืฆื™ื’: 3.0

ืฉื ืžืฉืชืžืฉ
ืฉื ื”ืžืฉืชืžืฉ ืฉื™ื•ืขื‘ืจ ืœืฉืจืช ื”ืžืคืงื— ืœืฉื™ืžื•ืฉ ื‘ืื™ืžื•ืช. ื–ื” ืืžื•ืจ
ืœื”ื™ื•ืช ื–ื”ื” ืœ ืฉื ืžืฉืชืžืฉ ืžืชืฆื•ืจืช ืฉืจืช ื”ืžืคืงื— ืขื‘ื•ืจ ื”ื™ืฆื™ืื” ืื• UNIX
ืฉืงืข ื“ื•ืžื™ื™ืŸ ืฉืืœื™ื• ืืชื” ืžื ืกื” ืœื’ืฉืช.

ื‘ึผึฐืจึดื™ืจึทืช ืžึถื—ื“ึธืœ: ืื™ืŸ ืฉื ืžืฉืชืžืฉ

ื“ืจื•ืฉ: ืœื.

ื”ืฆื™ื’: 3.0

ืกื™ืกืžื
ื”ืกื™ืกืžื” ืœื”ืขื‘ื™ืจ ืœืฉืจืช ื”ืกื•ืคืจื•ื•ื™ื–ืจ ืœืฉื™ืžื•ืฉ ื‘ืื™ืžื•ืช. ื–ื” ืืžื•ืจ
ืœื”ื™ื•ืช ื”ื’ืจืกื” ื”ื‘ื”ื™ืจื” ืฉืœ ืกื™ืกืžื ืžืชืฆื•ืจืช ืฉืจืช ื”ืžืคืงื— ืขื‘ื•ืจ
ื™ืฆื™ืื” ืื• ืฉืงืข ืชื—ื•ื UNIX ืฉืืœื™ื• ืืชื” ืžื ืกื” ืœื’ืฉืช. ืœื ื ื™ืชืŸ ืœื”ืขื‘ื™ืจ ืขืจืš ื–ื” ื‘ืชื•ืจ
hash ืฉืœ SHA. ืฉืœื ื›ืžื• ืกื™ืกืžืื•ืช ืื—ืจื•ืช ื”ืžืฆื•ื™ื ื•ืช ื‘ืงื•ื‘ืฅ ื–ื”, ื™ืฉ ืœืกืคืง ืื•ืชื” ื‘
ื˜ืงืกื˜ ื‘ืจื•ืจ.

ื‘ึผึฐืจึดื™ืจึทืช ืžึถื—ื“ึธืœ: ืื™ืŸ ืกื™ืกืžื

ื“ืจื•ืฉ: ืœื.

ื”ืฆื™ื’: 3.0

ื”ืคืงื•ื“ื”
ืžื—ืจื•ื–ืช ื”ืžืฉืžืฉืช ื›ื”ื ื—ื™ื” supervisorctl.

ื‘ึผึฐืจึดื™ืจึทืช ืžึถื—ื“ึธืœ: ืžืคืงื—

ื“ืจื•ืฉ: ืœื.

ื”ืฆื™ื’: 3.0

ืงื•ื‘ืฅ_ื”ื™ืกื˜ื•ืจื™ื”
ื ืชื™ื‘ ืœืฉื™ืžื•ืฉ ื‘ืชื•ืจ ืงืจื™ืืช ืฉื•ืจื” ืงื•ื‘ืฅ ื”ื™ืกื˜ื•ืจื™ื” ืžืชืžืฉืš. ืื ืชืคืขื™ืœ ืชื›ื•ื ื” ื–ื• ืขืœ ื™ื“ื™
ื‘ื—ื™ืจืช ื ืชื™ื‘, ืคืงื•ื“ื•ืช supervisorctl ืฉืœืš ื™ื™ืฉืžืจื• ื‘ืงื•ื‘ืฅ, ื•ืชื•ื›ืœ ืœื”ืฉืชืžืฉ
readline (ืœืžืฉืœ ื—ืฅ ืœืžืขืœื”) ื›ื“ื™ ืœื”ืคืขื™ืœ ืคืงื•ื“ื•ืช ืฉื‘ื™ืฆืขืช ื‘- supervisorctl ื”ืื—ืจื•ืŸ ืฉืœืš
ืžื•ึนืฉืึธื‘.

ื‘ึผึฐืจึดื™ืจึทืช ืžึถื—ื“ึธืœ: ืื™ืŸ ืงื•ื‘ืฅ

ื“ืจื•ืฉ: ืœื.

ื”ืฆื™ื’: 3.0a5

[ืกื•ืคืจvisorctl] ืกืขื™ืฃ ื“ื•ื’ืžื”
[ืกื•ืคืจvisorctl]
serverurl = unix:///tmp/supervisor.sock
ืฉื ืžืฉืชืžืฉ = ื›ืจื™ืก
ืกื™ืกืžื = 123
ื”ื ื—ื™ื” = ื”ืžืคืงื— ืฉืœื™

[ืชื•ื›ื ื™ืช:x] ืกืขื™ืฃ ื”ื’ื“ืจื•ืช
ืงื•ื‘ืฅ ื”ืชืฆื•ืจื” ื—ื™ื™ื‘ ืœื”ื›ื™ืœ ืื—ื“ ืื• ื™ื•ืชืจ ื”ืชื•ื›ื ื™ืช ืกืขื™ืคื™ื ืขืœ ืžื ืช ืœืคืงื—
ื›ื“ื™ ืœื“ืขืช ื‘ืื™ืœื• ืชื•ื›ื ื™ื•ืช ื”ื•ื ืฆืจื™ืš ืœื”ืชื—ื™ืœ ื•ืœืฉืœื•ื˜. ืขืจืš ื”ื›ื•ืชืจืช ื”ื•ื ืขืจืš ืžื•ืจื›ื‘.
ื–ื•ื”ื™ ื”ืžื™ืœื” "ืชื•ื›ื ื™ืช", ื•ืœืื—ืจื™ื” ื™ืฉื™ืจื•ืช ื ืงื•ื“ืชื™ื™ื, ื•ืœืื—ืจ ืžื›ืŸ ืฉื ื”ืชื•ื›ื ื™ืช. ื›ื•ืชืจืช ืขืœื™ื•ื ื”
ืขืจืš ืฉืœ [program:foo] ืžืชืืจ ืชื•ื›ื ื™ืช ืขื ื”ืฉื "ืคื•". ื ืขืฉื” ืฉื™ืžื•ืฉ ื‘ืฉื
ื‘ืชื•ืš ื™ื™ืฉื•ืžื™ ืœืงื•ื— ื”ืฉื•ืœื˜ื™ื ื‘ืชื”ืœื™ื›ื™ื ืฉื ื•ืฆืจื™ื ื›ืชื•ืฆืื” ืžื›ืš
ืชึฐืฆื•ึผืจึธื”. ื–ื• ืฉื’ื™ืื” ืœื™ืฆื•ืจ ื ื”ืชื•ื›ื ื™ืช ืกืขื™ืฃ ืฉืื™ืŸ ืœื• ืฉื. ื”
ื”ืฉื ืื™ื ื• ื™ื›ื•ืœ ืœื›ืœื•ืœ ืชื• ื ืงื•ื“ืชื™ื™ื ืื• ืชื• ืกื•ื’ืจื™ื™ื. ืขืจื›ื• ืฉืœ ื”ืฉื ื”ื•ื
ืžืฉืžืฉ ื›ืขืจืš ืขื‘ื•ืจ ื” %(program_name)s ื”ืจื—ื‘ืช ื‘ื™ื˜ื•ื™ ืžื—ืจื•ื–ืช ื‘ืชื•ืš ืขืจื›ื™ื ืื—ืจื™ื
ื”ื™ื›ืŸ ืฉืฆื•ื™ืŸ.

ื”ืขืจื”:
A [ืชื•ื›ื ื™ืช:x] ืกืขื™ืฃ ืžื™ื™ืฆื’ ืœืžืขืฉื” "ืงื‘ื•ืฆืช ืชื”ืœื™ืš ื”ื•ืžื•ื’ื ื™ืช" ืœืžืคืงื—
(ื ื›ื•ืŸ ืœ-3.0). ื—ื‘ืจื™ ื”ืงื‘ื•ืฆื” ืžื•ื’ื“ืจื™ื ืขืœ ื™ื“ื™ ื”ืฉื™ืœื•ื‘ ืฉืœ ื” numprocs
ื• ืฉื ื”ืชื”ืœื™ืš ืคืจืžื˜ืจื™ื ื‘ืชืฆื•ืจื”. ื›ื‘ืจื™ืจืช ืžื—ื“ืœ, ืื numprocs ื•
process_name ื ื•ืชืจื• ืœืœื ืฉื™ื ื•ื™ ืžื‘ืจื™ืจื•ืช ื”ืžื—ื“ืœ ืฉืœื”ื, ื”ืงื‘ื•ืฆื” ื”ืžื™ื•ืฆื’ืช ืขืœ ื™ื“ื™
[ืชื•ื›ื ื™ืช:x] ื™ื™ืงืจื ืฉื x ื•ื™ื”ื™ื” ืฉื ืชื”ืœื™ืš ื™ื—ื™ื“ x ื‘ึผื•ึน. ื–ึถื”
ืžืกืคืง ืžืขื˜ ืชืื™ืžื•ืช ืœืื—ื•ืจ ืขื ืžื”ื“ื•ืจื•ืช ื™ืฉื ื•ืช ื™ื•ืชืจ ืฉืœ Supervisor, ืžื” ืฉื›ืŸ
ืœื ืœื”ืชื™ื™ื—ืก ืœืงื˜ืขื™ ืชื•ื›ื ื™ืช ื›ืืœ ื”ื’ื“ืจื•ืช ืงื‘ื•ืฆื•ืช ืชื”ืœื™ืš ื”ื•ืžื•ื’ื ื™ื•ืช.

ืื‘ืœ ืœืžืฉืœ, ืื ื™ืฉ ืœืš ื [program:foo] ืงื˜ืข ืขื ื numprocs ืฉืœ 3 ื•ื
ืฉื ื”ืชื”ืœื™ืš ื‘ื™ื˜ื•ื™ ืœ %(program_name)s_%(process_num)02d, ืงื‘ื•ืฆืช "ืคื•" ืชืขืฉื” ื–ืืช
ืžื›ื™ืœื™ื ืฉืœื•ืฉื” ืชื”ืœื™ื›ื™ื, ื‘ืฉื foo_00, foo_01, ื• foo_02. ื–ื” ืžืืคืฉืจ
ืœื”ืชื—ื™ืœ ืžืกืคืจ ืชื”ืœื™ื›ื™ื ื“ื•ืžื™ื ืžืื•ื“ ื‘ืืžืฆืขื•ืช ื™ื—ื™ื“ [ืชื•ื›ื ื™ืช:x] ืกึธืขึดื™ืฃ. ืืช ื›ืœ
ืฉืžื•ืช ืงื‘ืฆื™ log, ื›ืœ ืžื—ืจื•ื–ื•ืช ื”ืกื‘ื™ื‘ื” ื•ื”ืคืงื•ื“ื” ืฉืœ ืชื•ื›ื ื™ื•ืช ื™ื›ื•ืœื™ื ืœื”ื›ื™ืœ ื’ื
ื‘ื™ื˜ื•ื™ื™ ืžื—ืจื•ื–ืช Python ื“ื•ืžื™ื, ื›ื“ื™ ืœื”ืขื‘ื™ืจ ืคืจืžื˜ืจื™ื ืžืขื˜ ืฉื•ื ื™ื ืœื›ืœ ืื—ื“
ื”ืชื”ืœื™ืš.

[ืชื•ื›ื ื™ืช:x] ืกืขื™ืฃ ืขืจื›ื™ื
ื”ืคืงื•ื“ื”
ื”ืคืงื•ื“ื” ืฉืชื•ืคืขืœ ื›ืืฉืจ ืชื•ื›ื ื™ืช ื–ื• ืชื•ืคืขืœ. ื”ืคืงื•ื“ื” ื™ื›ื•ืœื” ืœื”ื™ื•ืช ืื•
ืžื•ื—ืœื˜ (ืœืžืฉืœ /ื ืชื™ื‘/ืืœ/ืฉื ืชื•ื›ื ื™ืช) ืื• ืงืจื•ื‘ ืžืฉืคื—ื” (ืœืžืฉืœ ืฉื ื”ืชื•ื›ื ื™ืช). ืื ื–ื”
ืงืจื•ื‘ ืžืฉืคื—ื”, ืกื‘ื™ื‘ืช ื”ืžืคืงื— $ PATH ื™ื—ืคืฉ ืืช ืงื•ื‘ืฅ ื”ื”ืคืขืœื”.
ืชื•ื›ื ื™ื•ืช ื™ื›ื•ืœื•ืช ืœืงื‘ืœ ื˜ื™ืขื•ื ื™ื, ืœืžืฉืœ /path/to/program Foo ื‘ึผึธืจ. ืฉื•ืจืช ื”ืคืงื•ื“ื” ื™ื›ื•ืœื” ืœื”ืฉืชืžืฉ
ืžืจื›ืื•ืช ื›ืคื•ืœื•ืช ืœืงื‘ื•ืฆื” ืฉืœ ืืจื’ื•ืžื ื˜ื™ื ืขื ืจื•ื•ื—ื™ื ื‘ื”ื ื›ื“ื™ ืœื”ืขื‘ื™ืจ ืœืชื•ื›ื ื™ืช, ืœืžืฉืœ
/path/to/program/name -p "ืคื• ื‘ึผึธืจ". ืฉื™ืžื• ืœื‘ ืฉื”ืขืจืš ืฉืœ ื”ืคืงื•ื“ื” ืขืฉื•ื™ ืœื›ืœื•ืœ Python
ื‘ื™ื˜ื•ื™ื™ ืžื—ืจื•ื–ืช, ืœืžืฉืœ /ื ืชื™ื‘/ืืœ/ืฉื ืชื•ื›ื ื™ืช --port=80%(process_num)02d ืขืฉื•ื™ ืœื”ืชืจื—ื‘
ืœ /ื ืชื™ื‘/ืืœ/ืฉื ืชื•ื›ื ื™ืช --port=8000 ื‘ื–ืžืŸ ืจื™ืฆื”. ื‘ื™ื˜ื•ื™ื™ ืžื—ืจื•ื–ืช ืžื•ืขืจื›ื™ื
ื ื’ื“ ืžื™ืœื•ืŸ ื”ืžื›ื™ืœ ืืช ื”ืžืคืชื—ื•ืช ืฉื ืงื‘ื•ืฆื”, host_node_name, process_num,
ืชื•ื›ื ื™ืช_ืฉื, ื›ืืŸ (ื”ืกืคืจื™ื™ื” ืฉืœ ืงื•ื‘ืฅ ื”ืชืฆื•ืจื” ืฉืœ supervisord), ื•ื”ื›ืœ
ืžืฉืชื ื™ ื”ืกื‘ื™ื‘ื” ืฉืœ supervisord ืขื ืงื™ื“ื•ืžืช ENV_. ืชื•ื›ื ื™ื•ืช ืžื‘ื•ืงืจื•ืช ืฆืจื™ื›ื•ืช
ืขืฆืžื ืื™ื ื ื“ืžื•ื ื™ื, ืžื›ื™ื•ื•ืŸ ืฉื”ืžืคืงื— ืžื ื™ื— ืฉื”ื•ื ืื—ืจืื™ ืœื“ืžื•ื ื™ื–ืฆื™ื” ืฉืœื•
ืชื”ืœื™ื›ื™ ืžืฉื ื” (ืจืื” ืื™-ื“ืžื•ื ื™ื–ืฆื™ื”_ืฉืœ_ืชืชื™-ืชื”ืœื™ื›ื™ื).

ื‘ึผึฐืจึดื™ืจึทืช ืžึถื—ื“ึธืœ: ืื™ืŸ ื‘ืจื™ืจืช ืžื—ื“ืœ.

ื“ืจื•ืฉ: ื›ืŸ.

ื”ืฆื™ื’: 3.0

ืฉื ื”ืชื”ืœื™ืš
ื‘ื™ื˜ื•ื™ ืžื—ืจื•ื–ืช Python ื”ืžืฉืžืฉ ืœื—ื™ื‘ื•ืจ ืฉื ืชื”ืœื™ืš ื”ืžืคืงื— ืขื‘ื•ืจ ื–ื”
ืชื”ืœื™ืš. ื‘ื“ืจืš ื›ืœืœ ืื™ื ืš ืฆืจื™ืš ืœื“ืื•ื’ ืœื’ื‘ื™ ื”ื’ื“ืจื” ื–ื• ืืœื ืื ื›ืŸ ืชืฉื ื”
numprocs. ื‘ื™ื˜ื•ื™ ื”ืžื—ืจื•ื–ืช ืžื•ืขืจืš ืžื•ืœ ืžื™ืœื•ืŸ ื”ื›ื•ืœืœ
ืฉื ืงื‘ื•ืฆื”, host_node_name, process_num, ืชื•ื›ื ื™ืช_ืฉื, ื• ื›ืืŸ (ื”ืกืคืจื™ื™ื” ืฉืœ
ืงื•ื‘ืฅ ื”ืชืฆื•ืจื” ืฉืœ supervisord).

ื‘ึผึฐืจึดื™ืจึทืช ืžึถื—ื“ึธืœ: %(program_name)s

ื“ืจื•ืฉ: ืœื.

ื”ืฆื™ื’: 3.0

numprocs
ื”ืžืคืงื— ื™ืชื—ื™ืœ ื›ืžื” ืฉื™ื•ืชืจ ืžื•ืคืขื™ื ืฉืœ ืชื•ื›ื ื™ืช ื–ื• ื›ืคื™ ืฉื ืงืจืื• ืขืœ ื™ื“ื™ numprocs. ื”ืขืจื”
ืฉืื numprocs > 1, ื” ืฉื ื”ืชื”ืœื™ืš ื”ื‘ื™ื˜ื•ื™ ื—ื™ื™ื‘ ืœื›ืœื•ืœ %(process_num)s (ืื• ื›ืœ
ื‘ื™ื˜ื•ื™ ืžื—ืจื•ื–ืช Python ื—ื•ืงื™ ืื—ืจ ื”ื›ื•ืœืœ process_num) ื‘ืชื•ืš ื–ื”.

ื‘ึผึฐืจึดื™ืจึทืช ืžึถื—ื“ึธืœ: 1

ื“ืจื•ืฉ: ืœื.

ื”ืฆื™ื’: 3.0

numprocs_start
ื”ื™ืกื˜ ืžืกืคืจ ืฉืœื ื”ืžืฉืžืฉ ืœื—ื™ืฉื•ื‘ ื”ืžืกืคืจ ืฉื‘ื• numprocs ืžืชื—ื™ืœ.

ื‘ึผึฐืจึดื™ืจึทืช ืžึถื—ื“ึธืœ: 0

ื“ืจื•ืฉ: ืœื.

ื”ืฆื™ื’: 3.0

ืขื“ื™ืคื•ืช
ื”ืขื“ื™ืคื•ืช ื”ื™ื—ืกื™ืช ืฉืœ ื”ืชื•ื›ื ื™ืช ื‘ื”ื–ืžื ืช ื”ื”ืชื—ืœื” ื•ื”ื›ื™ื‘ื•ื™. ื ืžื•ืš ื™ื•ืชืจ
ืกื“ืจื™ ืขื“ื™ืคื•ื™ื•ืช ืžืฆื™ื™ื ื™ื ืชื•ื›ื ื™ื•ืช ืฉืžืชื—ื™ืœื•ืช ืจืืฉื•ื ื•ืช ื•ื ื›ื‘ื•ืช ืื—ืจื•ื ื•ืช ื‘ืขืช ื”ื”ืคืขืœื” ื•ืžืชื™
ื ืขืฉื” ืฉื™ืžื•ืฉ ื‘ืคืงื•ื“ื•ืช ืžืฆื˜ื‘ืจื•ืช ื‘ืœืงื•ื—ื•ืช ืฉื•ื ื™ื (ืœืžืฉืœ "ื”ืชื—ืœ ื”ื›ืœ"/"ืขืฆื•ืจ ื”ื›ืœ"). ื’ื‘ื•ื” ื™ื•ืชืจ
ืกื“ืจื™ ื”ืขื“ื™ืคื•ื™ื•ืช ืžืฆื™ื™ื ื™ื ืชื•ื›ื ื™ื•ืช ืฉืžืชื—ื™ืœื•ืช ืื—ืจื•ื ื•ืช ื•ืžื•ืฉื‘ืชื•ืช ืจืืฉื•ื ื•ืช.

ื‘ึผึฐืจึดื™ืจึทืช ืžึถื—ื“ึธืœ: 999

ื“ืจื•ืฉ: ืœื.

ื”ืฆื™ื’: 3.0

ื”ืชื—ืœื” ืื•ื˜ื•ืžื˜ื™ืช
ืื ื–ื” ื ื›ื•ืŸ, ืชื•ื›ื ื™ืช ื–ื• ืชื•ืคืขืœ ืื•ื˜ื•ืžื˜ื™ืช ืขื ื”ืคืขืœืช Supervisord.

ื‘ึผึฐืจึดื™ืจึทืช ืžึถื—ื“ึธืœ: ื ื›ื•ืŸ

ื“ืจื•ืฉ: ืœื.

ื”ืฆื™ื’: 3.0

ืฉื ื™ื•ืช ื”ืชื—ืœ
ื”ืžืกืคืจ ื”ื›ื•ืœืœ ืฉืœ ื”ืฉื ื™ื•ืช ืฉื”ืชื•ื›ื ื™ืช ืฆืจื™ื›ื” ืœื”ืžืฉื™ืš ืœืคืขื•ืœ ืœืื—ืจ ื”ื”ืคืขืœื”
ืจืื” ืฉื”ื”ืชื—ืœื” ืžื•ืฆืœื—ืช (ื”ืขื‘ืจืช ื”ืชื”ืœื™ืš ืž- ืžืชื—ื™ืœ ื”ืžื“ื™ื ื” ืœ
ืจืฅ ืžื“ื™ื ื”). ืžื›ื•ื•ืŸ ืœ 0 ื›ื“ื™ ืœืฆื™ื™ืŸ ืฉื”ืชื•ื›ื ื™ืช ืœื ืฆืจื™ื›ื” ืœื”ื™ืฉืืจ ืคื•ืขืœืช ืขื‘ื•ืจ ืืฃ ืื—ื“
ืคืจืง ื–ืžืŸ ืžืกื•ื™ื.

ื”ืขืจื”:
ื’ื ืื ืชื”ืœื™ืš ื™ื•ืฆื ืขื ืงื•ื“ ื™ืฆื™ืื” "ืฆืคื•ื™" (ืจืื” ืงื•ื“ื™ ื™ืฆื™ืื”), ื”ื”ืชื—ืœื”
ืขื“ื™ื™ืŸ ื™ื™ื—ืฉื‘ ื›ื›ืฉืœ ืื ื”ืชื”ืœื™ืš ื™ื•ืฆื ืžื”ืจ ื™ื•ืชืจ ืž ืฉื ื™ื•ืช ื”ืชื—ืœ.

ื‘ึผึฐืจึดื™ืจึทืช ืžึถื—ื“ึธืœ: 1

ื“ืจื•ืฉ: ืœื.

ื”ืฆื™ื’: 3.0

ื ืกื™ื•ื ื•ืช ื”ืชื—ืœื”
ืžืกืคืจ ื ื™ืกื™ื•ื ื•ืช ื›ืฉืœ ืกื“ืจืชื™ ื–ื” ืžึฐืคึทืงึตื—ึท ื™ืืคืฉืจ ื›ืืฉืจ ืžื ืกื™ื
ื”ืชื—ืœ ืืช ื”ืชื•ื›ื ื™ืช ืœืคื ื™ ื”ื•ื•ื™ืชื•ืจ ื•ื”ื›ื ืกืช ื”ืชื”ืœื™ืš ืœืชื•ืš ืงึธื˜ืœึธื ึดื™ ืžื“ื™ื ื”. ืœึดืจึฐืื•ึนืช
process_states ืœื”ืกื‘ืจ ืฉืœ ืงึธื˜ืœึธื ึดื™ ืžื“ื™ื ื”.

ื‘ึผึฐืจึดื™ืจึทืช ืžึถื—ื“ึธืœ: 3

ื“ืจื•ืฉ: ืœื.

ื”ืฆื™ื’: 3.0

ื”ืคืขืœื” ืื•ื˜ื•ืžื˜ื™ืช
ืžืฆื™ื™ืŸ ืื ืžึฐืคึทืงึตื—ึท ืฆืจื™ืš ืœื”ืคืขื™ืœ ืžื—ื“ืฉ ืชื”ืœื™ืš ื‘ืื•ืคืŸ ืื•ื˜ื•ืžื˜ื™ ืื ื”ื•ื ื™ื•ืฆื ื›ืฉื”ื•ื ื›ืŸ
ื‘ ืจืฅ ืžื“ื™ื ื”. ื™ื›ื•ืœ ืœื”ื™ื•ืช ืื—ื“ ืžื”ื ืฉืงืจ, ืœื ืฆืคื•ื™, ืื• ื ึธื›ื•ึนืŸ. ืื ืฉืงืจ, ื”ืชื”ืœื™ืš
ืœื ื™ื•ืคืขืœ ืžื—ื“ืฉ. ืื ืœื ืฆืคื•ื™, ื”ืชื”ืœื™ืš ื™ื•ืคืขืœ ืžื—ื“ืฉ ื›ืืฉืจ
ื”ืชื•ื›ื ื™ืช ื™ื•ืฆืืช ืขื ืงื•ื“ ื™ืฆื™ืื” ืฉืื™ื ื• ืื—ื“ ืžืงื•ื“ื™ ื”ื™ืฆื™ืื” ื”ืžืฉื•ื™ื›ื™ื ืœื›ืš
ืชืฆื•ืจืช ื”ืชื”ืœื™ืš (ืจืื” ืงื•ื“ื™ ื™ืฆื™ืื”). ืื ื ึธื›ื•ึนืŸ, ื”ืชื”ืœื™ืš ื™ื”ื™ื” ืœืœื ืชื ืื™
ืžื•ืคืขืœ ืžื—ื“ืฉ ื›ืืฉืจ ื”ื•ื ื™ื•ืฆื, ืœืœื ืงืฉืจ ืœืงื•ื“ ื”ื™ืฆื™ืื” ืฉืœื•.

ื”ืขืจื”:
ื”ืคืขืœื” ืื•ื˜ื•ืžื˜ื™ืช ืฉื•ืœื˜ ืื ืžึฐืคึทืงึตื—ึท ื™ืคืขื™ืœ ืžื—ื“ืฉ ืชื•ื›ื ื™ืช ืื•ื˜ื•ืžื˜ื™ืช ืื ื”ื™ื ื™ื•ืฆืืช
ืœืื—ืจ ื”ืคืขืœืชื• ื‘ื”ืฆืœื—ื” (ื”ืชื”ืœื™ืš ื ืžืฆื ื‘- ืจืฅ ืžื“ื™ื ื”).

ืžึฐืคึทืงึตื—ึท ื™ืฉ ืžื ื’ื ื•ืŸ ื”ืคืขืœื” ืžื—ื“ืฉ ืฉื•ื ื” ืขื‘ื•ืจ ืžืชื™ ื”ืชื”ืœื™ืš ืžืชื—ื™ืœ
(ื”ืชื”ืœื™ืš ื ืžืฆื ื‘ ืžืชื—ื™ืœ ืžื“ื™ื ื”). ื ื™ืกื™ื•ื ื•ืช ื—ื•ื–ืจื™ื ื‘ืžื”ืœืš ืืชื—ื•ืœ ื”ืชื”ืœื™ืš ื”ื
ื ืฉืœื˜ ืขืœ ื™ื“ื™ ืฉื ื™ื•ืช ื”ืชื—ืœ ื• ื ืกื™ื•ื ื•ืช ื”ืชื—ืœื”.

ื‘ึผึฐืจึดื™ืจึทืช ืžึถื—ื“ึธืœ: ื‘ืœืชื™ ืฆืคื•ื™

ื“ืจื•ืฉ: ืœื.

ื”ืฆื™ื’: 3.0

ืงื•ื“ื™ ื™ืฆื™ืื”
ืจืฉื™ืžืช ืงื•ื“ื™ ื”ื™ืฆื™ืื” ื”"ืฆืคื•ื™ื™ื" ืขื‘ื•ืจ ืชื•ื›ื ื™ืช ื–ื• ื‘ืฉื™ืžื•ืฉ ืขื ื”ืคืขืœื” ืื•ื˜ื•ืžื˜ื™ืช. ืื
ื”ืคืขืœื” ืื•ื˜ื•ืžื˜ื™ืช ืคืจืžื˜ืจ ืžื•ื’ื“ืจ ืœ ืœื ืฆืคื•ื™, ื•ื”ืชื”ืœื™ืš ื™ื•ืฆื ื‘ื›ืœ ื“ืจืš ืื—ืจืช ืžืืฉืจ
ื›ืชื•ืฆืื” ืžื‘ืงืฉืช ืขืฆื™ืจืช ืžืคืงื—, ืžึฐืคึทืงึตื—ึท ื™ืชื—ื™ืœ ืžื—ื“ืฉ ืืช ื”ืชื”ืœื™ืš ืื ื–ื”
ื™ื•ืฆื ืขื ืงื•ื“ ื™ืฆื™ืื” ืฉืื™ื ื• ืžื•ื’ื“ืจ ื‘ืจืฉื™ืžื” ื–ื•.

ื‘ึผึฐืจึดื™ืจึทืช ืžึถื—ื“ึธืœ: 0,2

ื“ืจื•ืฉ: ืœื.

ื”ืฆื™ื’: 3.0

ืื•ืช ืขืฆื•ืจ
ื”ืื•ืช ื”ืžืฉืžืฉ ืœื”ืจื•ื’ ืืช ื”ืชื•ื›ื ื™ืช ื›ืืฉืจ ืžืชื‘ืงืฉืช ืขืฆื™ืจื”. ื–ื” ื™ื›ื•ืœ ืœื”ื™ื•ืช ื›ืœ ืื—ื“ ืž-TERM,
HUP, INT, QUIT, KILL, USR1 ืื• USR2.

ื‘ึผึฐืจึดื™ืจึทืช ืžึถื—ื“ึธืœ: ื˜ื•ื•ื—

ื“ืจื•ืฉ: ืœื.

ื”ืฆื™ื’: 3.0

stopwaitsecs
ืžืกืคืจ ื”ืฉื ื™ื•ืช ืœื—ื›ื•ืช ืœืžืขืจื›ืช ื”ื”ืคืขืœื” ืฉืชื—ื–ื™ืจ ืืœื™ื” SIGCHILD ืžึฐืคึทืงึตื—ึท ืœืื—ืจ
ืœืชื•ื›ื ื™ืช ื ืฉืœื— ืื•ืช ืขืฆื•ืจ. ืื ืžืกืคืจ ื”ืฉื ื™ื•ืช ื”ื–ื” ื—ื•ืœืฃ ืœืคื ื™ ื›ืŸ
ืžึฐืคึทืงึตื—ึท ืžืงื‘ืœ SIGCHILD ืžื”ืชื”ืœื™ืš, ืžึฐืคึทืงึตื—ึท ื™ื ืกื” ืœื”ืจื•ื’ ืื•ืชื•
ืขื SIGKILL ืื—ืจื•ืŸ.

ื‘ึผึฐืจึดื™ืจึทืช ืžึถื—ื“ึธืœ: 10

ื“ืจื•ืฉ: ืœื.

ื”ืฆื™ื’: 3.0

ืงื‘ื•ืฆืช stopas
ืื ื–ื” ื ื›ื•ืŸ, ื”ื“ื’ืœ ื’ื•ืจื ืœืžื ื”ืœ ืœืฉืœื•ื— ืืช ืื•ืช ื”ืขืฆื™ืจื” ืœื›ืœ ืงื‘ื•ืฆืช ื”ืชื”ืœื™ืš
ื•ืžืจืžื– killasgroup ื ื›ื•ืŸ. ื–ื” ืฉื™ืžื•ืฉื™ ืขื‘ื•ืจ ืชื•ื›ื ื™ื•ืช, ื›ื’ื•ืŸ Flask ื‘-debug
ืžืฆื‘, ืฉืื™ื ื ืžืคื™ืฆื™ื ืื•ืชื•ืช ืขืฆื™ืจื” ืœื™ืœื“ื™ื”ื, ื•ืžืฉืื™ืจื™ื ืื•ืชื ื™ืชื•ืžื™ื.

ื‘ึผึฐืจึดื™ืจึทืช ืžึถื—ื“ึธืœ: ืฉืงืจ

ื“ืจื•ืฉ: ืœื.

ื”ืฆื™ื’: 3.0b1

killasgroup
ืื ื–ื” ื ื›ื•ืŸ, ื›ืืฉืจ ืคื•ื ื™ื ืœืฉืœื•ื— ืืช SIGKILL ืœืชื•ื›ื ื™ืช ื›ื“ื™ ืœืกื™ื™ื ืื•ืชื”, ืฉืœื— ืื•ืชื” ืœืชื•ื›ื ื™ืช ืฉืœื”
ืงื‘ื•ืฆืช ื›ืœ ื”ืชื”ืœื™ืš ื‘ืžืงื•ื, ื“ื•ืื’ืช ื’ื ืœื™ืœื“ื™ื ืฉืœื”, ืฉื™ืžื•ืฉื™ืช ืœืžืฉืœ ืขื
ืชื•ื›ื ื™ื•ืช Python ื‘ืืžืฆืขื•ืช ืขื™ื‘ื•ื“ ืจื‘.

ื‘ึผึฐืจึดื™ืจึทืช ืžึถื—ื“ึธืœ: ืฉืงืจ

ื“ืจื•ืฉ: ืœื.

ื”ืฆื™ื’: 3.0a11

ื”ืžืฉืชืžืฉ
ืœึฐื”ื•ึนืจื•ึนืช ืžึฐืคึทืงึตื—ึท ืœื”ืฉืชืžืฉ ื‘ื—ืฉื‘ื•ืŸ ืžืฉืชืžืฉ ื–ื” ื‘-UNIX ื‘ืชื•ืจ ื”ื—ืฉื‘ื•ืŸ ืฉืžืคืขื™ืœ ืืช
ืชื›ื ื™ืช. ื ื™ืชืŸ ืœื”ื—ืœื™ืฃ ืืช ื”ืžืฉืชืžืฉ ืจืง ืื ืžึฐืคึทืงึตื—ึท ืžื•ืคืขืœ ื›ืžืฉืชืžืฉ ื”ืฉื•ืจืฉ. ืื
ืžึฐืคึทืงึตื—ึท ืœื ื™ื›ื•ืœ ืœืขื‘ื•ืจ ืœืžืฉืชืžืฉ ืฉืฆื•ื™ืŸ, ื”ืชื•ื›ื ื™ืช ืœื ืชื•ืคืขืœ.

ื”ืขืจื”:
ื”ืžืฉืชืžืฉ ื™ืฉืชื ื” ื‘ืืžืฆืขื•ืช ื–ืžืŸ ืžื•ื’ื“ืจ ืจืง. ื–ื” ืœื ืžืชื—ื™ืœ ืžืขื˜ืคืช ื›ื ื™ืกื” ื•
ืœื ืžืฉื ื” ืžืฉืชื ื™ ืกื‘ื™ื‘ื” ื›ืžื• ืžืฉืชืžืฉ or ืขืžื•ื“ ื”ื‘ื™ืช. ืœืจืื•ืช
subprocess_environment ืœืคืจื˜ื™ื.

ื‘ึผึฐืจึดื™ืจึทืช ืžึถื—ื“ึธืœ: ืืœ ืชื—ืœื™ืฃ ืžืฉืชืžืฉื™ื

ื“ืจื•ืฉ: ืœื.

ื”ืฆื™ื’: 3.0

redirect_stderr
ืื ื–ื” ื ื›ื•ืŸ, ื’ื•ืจื ืœืคืœื˜ stderr ืฉืœ ื”ืชื”ืœื™ืš ืœื”ื™ืฉืœื— ื‘ื—ื–ืจื” ืžึฐืคึทืงึตื—ึท ืขืœ ื”ืกื˜ื“ืื•ื˜ ืฉืœื•
ืžืชืืจ ืงื•ื‘ืฅ (ื‘ืžื•ื ื—ื™ ืžืขื˜ืคืช UNIX, ื–ื” ืฉื•ื•ื” ืขืจืš ืœื‘ื™ืฆื•ืข /ื”ืชื›ื ื™ืช
2> & 1).

ื”ืขืจื”:
ืœื ืœื”ื’ื“ื™ืจ redirect_stderr=true ื‘ืชื•ืš [ืžืื–ื™ืŸ ืื™ืจื•ืขื™ื:x] ืกึธืขึดื™ืฃ. ืžืื–ื™ื ื™ ืื™ืจื•ืขื™ื
ืœื”ืฉืชืžืฉ stdout ื• ืกื˜ื“ื™ืŸ ืœืชืงืฉืจ ืื™ืชื• ืžึฐืคึทืงึตื—ึท. ืื ืกื˜ื“ืจืจ ืžื•ืคื ื” ืžื—ื“ืฉ,
ืคืœื˜ ืž ืกื˜ื“ืจืจ ื™ืคืจื™ืข ืœืคืจื•ื˜ื•ืงื•ืœ ื”ืžืื–ื™ืŸ ืœืื™ืจื•ืขื™ื.

ื‘ึผึฐืจึดื™ืจึทืช ืžึถื—ื“ึธืœ: ืฉืงืจ

ื“ืจื•ืฉ: ืœื.

ื”ืฆื™ื’: 3.0, ืžื—ืœื™ืฃ 2.0 log_stdout ื• log_stderr

stdout_logfile
ืฉื™ื ืคืœื˜ process stdout ื‘ืงื•ื‘ืฅ ื”ื–ื” (ื•ืื redirect_stderr ื ื›ื•ืŸ, ื’ื ืžืงื
ืคืœื˜ stderr ื‘ืงื•ื‘ืฅ ื–ื”). ืื stdout_logfile ืœื ืžื•ื’ื“ืจ ืื• ืžื•ื’ื“ืจ ืœ AUTO, ืžืคืงื—
ื™ื‘ื—ืจ ืื•ื˜ื•ืžื˜ื™ืช ืžื™ืงื•ื ืงื•ื‘ืฅ. ืื ื–ื” ืžื•ื’ื“ืจ ืœ ืืฃ ืœื ืื—ื“, ื”ืžืคืงื— ื™ื”ื™ื”
ืœื ืœื™ืฆื•ืจ ืงื•ื‘ืฅ ื™ื•ืžืŸ. AUTO ืงื•ื‘ืฆื™ ื™ื•ืžืŸ ื•ื”ื’ื™ื‘ื•ื™ื™ื ืฉืœื”ื ื™ื™ืžื—ืงื• ืžืชื™ ืžึฐืคึทืงึตื—ึท
ืžื•ืคืขืœ ืžื—ื“ืฉ. ื” stdout_logfile ืขืจืš ื™ื›ื•ืœ ืœื”ื›ื™ืœ ื‘ื™ื˜ื•ื™ื™ ืžื—ืจื•ื–ืช Python ืฉื™ืขืฉื• ื–ืืช
ืžื•ืขืจืš ืžื•ืœ ืžื™ืœื•ืŸ ื”ืžื›ื™ืœ ืืช ื”ืžืคืชื—ื•ืช ืฉื ืงื‘ื•ืฆื”, host_node_name,
process_num, ืชื•ื›ื ื™ืช_ืฉื, ื• ื›ืืŸ (ื”ืกืคืจื™ื™ื” ืฉืœ ืงื•ื‘ืฅ ื”ืชืฆื•ืจื” ืฉืœ supervisord).

ื”ืขืจื”:
ื–ื” ืœื ืืคืฉืจื™ ืฉืฉื ื™ ืชื”ืœื™ื›ื™ื ื™ืฉืชืคื• ืงื•ื‘ืฅ ื™ื•ืžืŸ ื‘ื•ื“ื“ (stdout_logfile)
ื›ืืฉืจ ืกื™ื‘ื•ื‘ (stdout_logfile_maxbytes) ืžื•ืคืขืœ. ื–ื” ื™ื’ืจื•ื ืœืงื•ื‘ืฅ
ืœื”ื™ื•ืช ืžื•ืฉื—ืช.

ื‘ึผึฐืจึดื™ืจึทืช ืžึถื—ื“ึธืœ: AUTO

ื“ืจื•ืฉ: ืœื.

ื”ืฆื™ื’: 3.0, ืžื—ืœื™ืฃ 2.0 ืงื•ื‘ืฅ ืœื•ื’

stdout_logfile_maxbytes
ื”ืžืกืคืจ ื”ืžืจื‘ื™ ืฉืœ ื‘ืชื™ื ืฉื ื™ืชืŸ ืœืฆืจื•ืš ืขืœ ื™ื“ื™ stdout_logfile ืœืคื ื™ ืฉื”ื•ื ืžืกื•ื‘ื‘
(ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ืžื›ืคื™ืœื™ ืกื™ื•ืžืช ื›ืžื• "KB", "MB" ื•-"GB" ื‘ืขืจืš). ื”ื’ื“ืจ ืืช ื–ื”
ืขืจืš ืขื“ 0 ื›ื“ื™ ืœืฆื™ื™ืŸ ื’ื•ื“ืœ ื™ื•ืžืŸ ื‘ืœืชื™ ืžื•ื’ื‘ืœ.

ื‘ึผึฐืจึดื™ืจึทืช ืžึถื—ื“ึธืœ: 50MB

ื“ืจื•ืฉ: ืœื.

ื”ืฆื™ื’: 3.0, ืžื—ืœื™ืฃ 2.0 logfile_maxbytes

stdout_logfile_backups
ืžืกืคืจ stdout_logfile ื’ื™ื‘ื•ื™ื™ื ื›ื“ื™ ืœืฉืžื•ืจ ื‘ืกื‘ื™ื‘ื” ื”ื ื•ื‘ืขื™ื ืžื™ื•ืžืŸ ืกื˜ื“out ืฉืœ ืชื”ืœื™ืš
ืกื™ื‘ื•ื‘ ืงื‘ืฆื™ื. ืื ืžื•ื’ื“ืจ ืœ-0, ืœื ื™ื™ืฉืžืจื• ื’ื™ื‘ื•ื™ื™ื.

ื‘ึผึฐืจึดื™ืจึทืช ืžึถื—ื“ึธืœ: 10

ื“ืจื•ืฉ: ืœื.

ื”ืฆื™ื’: 3.0, ืžื—ืœื™ืฃ 2.0 logfile_backups

stdout_capture_maxbytes
ื”ืžืกืคืจ ื”ืžืงืกื™ืžืœื™ ืฉืœ ื‘ืชื™ื ืฉื ื›ืชื‘ ืœืœื›ื™ื“ืช FIFO ื›ืืฉืจ ื”ืชื”ืœื™ืš ื ืžืฆื ื‘ืžืฆื‘ "ืœื›ื™ื“ืช stdout"
(ืจืื” capture_mode). ืฆืจื™ืš ืœื”ื™ื•ืช ืžืกืคืจ ืฉืœื (ืžื›ืคื™ืœื™ ืกื™ื•ืžืช ื›ืžื• "KB", "MB" ื•-"GB"
ื™ื›ื•ืœ ืœื”ืฉืชืžืฉ ื‘ืขืจืš). ืื ืขืจืš ื–ื” ื”ื•ื 0, ืžืฆื‘ ืœื›ื™ื“ืช ื”ืชื”ืœื™ืš ื™ื”ื™ื” ื›ื‘ื•ื™.

ื‘ึผึฐืจึดื™ืจึทืช ืžึถื—ื“ึธืœ: 0

ื“ืจื•ืฉ: ืœื.

ื”ืฆื™ื’: 3.0, ืžื—ืœื™ืฃ 2.0 logfile_backups

stdout_events_enabled
ืื ื–ื” ื ื›ื•ืŸ, ืื™ืจื•ืขื™ PROCESS_LOG_STDOUT ื™ื™ืคืœื˜ื• ื›ืืฉืจ ื”ืชื”ืœื™ืš ื™ื›ืชื•ื‘ ืืœื™ื•
ืžืชืืจ ืงื•ื‘ืฅ stdout. ื”ืื™ืจื•ืขื™ื ื™ื™ืคืœื˜ื• ืจืง ืื ืžืชืืจ ื”ืงื•ื‘ืฅ ืื™ื ื•
ื‘ืžืฆื‘ ืœื›ื™ื“ื” ื‘ื–ืžืŸ ืงื‘ืœืช ื”ื ืชื•ื ื™ื (ืจืื” capture_mode).

ื‘ึผึฐืจึดื™ืจึทืช ืžึถื—ื“ึธืœ: 0

ื“ืจื•ืฉ: ืœื.

ื”ืฆื™ื’: 3.0a7

stderr_logfile
ืฉื™ื ืคืœื˜ process stderr ื‘ืงื•ื‘ืฅ ื–ื” ืืœื ืื ื›ืŸ redirect_stderr ื ื›ื•ืŸ. ืžืงื‘ืœ ืืช
ืื•ืชื ืกื•ื’ื™ ืขืจื›ื™ื ื›ืžื• stdout_logfile ื•ืขืฉื•ื™ื™ื ืœื”ื›ื™ืœ ืืช ืื•ืชื ื‘ื™ื˜ื•ื™ื™ ืžื—ืจื•ื–ืช Python.

ื”ืขืจื”:
ื–ื” ืœื ืืคืฉืจื™ ืฉืฉื ื™ ืชื”ืœื™ื›ื™ื ื™ืฉืชืคื• ืงื•ื‘ืฅ ื™ื•ืžืŸ ื‘ื•ื“ื“ (stderr_logfile)
ื›ืืฉืจ ืกื™ื‘ื•ื‘ (stderr_logfile_maxbytes) ืžื•ืคืขืœ. ื–ื” ื™ื’ืจื•ื ืœืงื•ื‘ืฅ
ืœื”ื™ื•ืช ืžื•ืฉื—ืช.

ื‘ึผึฐืจึดื™ืจึทืช ืžึถื—ื“ึธืœ: AUTO

ื“ืจื•ืฉ: ืœื.

ื”ืฆื™ื’: 3.0

stderr_logfile_maxbytes
ื”ืžืกืคืจ ื”ืžืจื‘ื™ ืฉืœ ื‘ืชื™ื ืœืคื ื™ ืกื™ื‘ื•ื‘ ืงื•ื‘ืฅ ื™ื•ืžืŸ ืขื‘ื•ืจ stderr_logfile. ืžืงื‘ืœ ืืช
ืื•ืชื ืกื•ื’ื™ ืขืจื›ื™ื ื›ืžื• stdout_logfile_maxbytes.

ื‘ึผึฐืจึดื™ืจึทืช ืžึถื—ื“ึธืœ: 50MB

ื“ืจื•ืฉ: ืœื.

ื”ืฆื™ื’: 3.0

stderr_logfile_backups
ืžืกืคืจ ื”ื’ื™ื‘ื•ื™ื™ื ืฉื™ืฉ ืœืฉืžื•ืจ ื‘ืกื‘ื™ื‘ื” ื”ื ื•ื‘ืขื™ื ืžืกื™ื‘ื•ื‘ ืงื•ื‘ืฅ ื™ื•ืžืŸ ืชื”ืœื™ืš stderr.
ืื ืžื•ื’ื“ืจ ืœ-0, ืœื ื™ื™ืฉืžืจื• ื’ื™ื‘ื•ื™ื™ื.

ื‘ึผึฐืจึดื™ืจึทืช ืžึถื—ื“ึธืœ: 10

ื“ืจื•ืฉ: ืœื.

ื”ืฆื™ื’: 3.0

stderr_capture_maxbytes
ื”ืžืกืคืจ ื”ืžืจื‘ื™ ืฉืœ ื‘ืชื™ื ืฉื ื›ืชื‘ ืœืœื›ื™ื“ืช FIFO ื›ืืฉืจ ื”ืชื”ืœื™ืš ื ืžืฆื ื‘ืžืฆื‘ "ืœื›ื™ื“ืช stderr"
(ืจืื” capture_mode). ืฆืจื™ืš ืœื”ื™ื•ืช ืžืกืคืจ ืฉืœื (ืžื›ืคื™ืœื™ ืกื™ื•ืžืช ื›ืžื• "KB", "MB" ื•-"GB"
ื™ื›ื•ืœ ืœื”ืฉืชืžืฉ ื‘ืขืจืš). ืื ืขืจืš ื–ื” ื”ื•ื 0, ืžืฆื‘ ืœื›ื™ื“ืช ื”ืชื”ืœื™ืš ื™ื”ื™ื” ื›ื‘ื•ื™.

ื‘ึผึฐืจึดื™ืจึทืช ืžึถื—ื“ึธืœ: 0

ื“ืจื•ืฉ: ืœื.

ื”ืฆื™ื’: 3.0

stderr_events_enabled
ืื ื–ื” ื ื›ื•ืŸ, ืื™ืจื•ืขื™ PROCESS_LOG_STDERR ื™ื™ืคืœื˜ื• ื›ืืฉืจ ื”ืชื”ืœื™ืš ื™ื›ืชื•ื‘ ืืœื™ื•
ืžืชืืจ ืงื•ื‘ืฅ stderr. ื”ืื™ืจื•ืขื™ื ื™ื™ืคืœื˜ื• ืจืง ืื ืžืชืืจ ื”ืงื•ื‘ืฅ ืื™ื ื•
ื‘ืžืฆื‘ ืœื›ื™ื“ื” ื‘ื–ืžืŸ ืงื‘ืœืช ื”ื ืชื•ื ื™ื (ืจืื” capture_mode).

ื‘ึผึฐืจึดื™ืจึทืช ืžึถื—ื“ึธืœ: ืฉืงืจ

ื“ืจื•ืฉ: ืœื.

ื”ืฆื™ื’: 3.0a7

ืกื‘ื™ื‘ื”
ืจืฉื™ืžื” ืฉืœ ื–ื•ื’ื•ืช ืžืคืชื—/ืขืจืš ื‘ื˜ื•ืคืก KEY="val",KEY2="val2" ืฉื™ื•ืฆื‘ ื‘
ืกื‘ื™ื‘ืช ืชื”ืœื™ืš ื”ื™ืœื“. ืžื—ืจื•ื–ืช ื”ืกื‘ื™ื‘ื” ืขืฉื•ื™ื” ืœื”ื›ื™ืœ ืžื—ืจื•ื–ืช Python
ื‘ื™ื˜ื•ื™ื™ื ืฉื™ื•ื‘ื—ื ื• ืžื•ืœ ืžื™ืœื•ืŸ ื”ืžื›ื™ืœ ืฉื ืงื‘ื•ืฆื”,
host_node_name, process_num, ืชื•ื›ื ื™ืช_ืฉื, ื• ื›ืืŸ (ื”ืกืคืจื™ื™ื” ืฉืœ ื”ืžืคืงื—
ืงื•ื‘ืฅ ื”ืชืฆื•ืจื”). ื™ืฉ ืœืฆื˜ื˜ ืขืจื›ื™ื ื”ืžื›ื™ืœื™ื ืชื•ื•ื™ื ืฉืื™ื ื ืืœืคืื ื•ืžืจื™ื™ื (ืœืžืฉืœ
KEY="val:123",KEY2="val,456"). ืื—ืจืช, ืฆื™ื˜ื•ื˜ ื”ืขืจื›ื™ื ื”ื•ื ืื•ืคืฆื™ื•ื ืœื™ ืื‘ืœ
ืžื•ืžืœืฅ. ื”ืขืจื•ืช ืฉืชื”ืœื™ืš ื”ืžืฉื ื” ื™ื™ืจืฉ ืืช ืžืฉืชื ื™ ื”ืกื‘ื™ื‘ื” ืฉืœ ื”
shell ื ื”ื’ื” ืœื”ืชื—ื™ืœ "ืžืคืงื—" ืคืจื˜ ืœืืœื” ืฉื ื“ื—ืงื• ื›ืืŸ. ืœึดืจึฐืื•ึนืช
subprocess_environment.

ื‘ึผึฐืจึดื™ืจึทืช ืžึถื—ื“ึธืœ: ืื™ืŸ ืกื‘ื™ื‘ื” ื ื•ืกืคืช

ื“ืจื•ืฉ: ืœื.

ื”ืฆื™ื’: 3.0

ื‘ืกืคืจื™ื™ื”
ื ืชื™ื‘ ืงื•ื‘ืฅ ื”ืžื™ื™ืฆื’ ืกืคืจื™ื™ื” ืฉืืœื™ื” ืžึฐืคึทืงึตื—ึท ืฆืจื™ืš chdir ื‘ืื•ืคืŸ ื–ืžื ื™
ืœืคื ื™ ื”ื”ื•ืฆืื” ืœืคื•ืขืœ ืฉืœ ื”ื™ืœื“.

ื‘ึผึฐืจึดื™ืจึทืช ืžึถื—ื“ึธืœ: ืื™ืŸ chdir (ื™ื•ืจืฉ ืืช ื”ืžืคืงื—)

ื“ืจื•ืฉ: ืœื.

ื”ืฆื™ื’: 3.0

ืื•ืžืกืง
ืžืกืคืจ ืื•ืงื˜ืœื™ (ืœืžืฉืœ 002, 022) ื”ืžื™ื™ืฆื’ ืืช ื”-umask ืฉืœ ื”ืชื”ืœื™ืš.

ื‘ึผึฐืจึดื™ืจึทืช ืžึถื—ื“ึธืœ: ืื™ืŸ umask ืžื™ื•ื—ื“ (ืžืคืงื— ื‘ื™ืจื•ืฉื”)

ื“ืจื•ืฉ: ืœื.

ื”ืฆื™ื’: 3.0

serverurl
ื›ืชื•ื‘ืช ื”ืืชืจ ื”ื•ืขื‘ืจื” ื‘ืกื‘ื™ื‘ื” ืœืชื”ืœื™ืš ื”ืžืฉื ื” ื› SUPERVISOR_SERVER_URL
(ืจืื” supervisor.childutils) ื›ื“ื™ ืœืืคืฉืจ ืœืชื”ืœื™ืš ื”ืžืฉื ื” ืœืชืงืฉืจ ื‘ืงืœื•ืช ืขื
ืฉืจืช HTTP ืคื ื™ืžื™. ืื ืžืกื•ืคืง, ื–ื” ืฆืจื™ืš ืœื”ื™ื•ืช ื‘ืขืœ ืื•ืชื• ืชื—ื‘ื™ืจ ื•ืžื‘ื ื” ื›ืžื• ืฉืœ
[ืกื•ืคืจvisorctl] ืืคืฉืจื•ืช ืกืขื™ืฃ ื‘ืื•ืชื• ืฉื. ืื ื–ื” ืžื•ื’ื“ืจ ืœ-AUTO, ืื• ืื™ื ื• ืžื•ื’ื“ืจ,
supervisor ื™ื‘ื ื” ื‘ืื•ืคืŸ ืื•ื˜ื•ืžื˜ื™ ื›ืชื•ื‘ืช URL ืฉืœ ืฉืจืช, ืชื•ืš ืžืชืŸ ืขื“ื™ืคื•ืช ืœืฉืจืช
ืฉืžืื–ื™ืŸ ื‘ืฉืงืขื™ ืชื—ื•ื UNIX ืขืœ ืคื ื™ ืื—ื“ ืฉืžืื–ื™ืŸ ื‘ืฉืงืข ืื™ื ื˜ืจื ื˜.

ื‘ึผึฐืจึดื™ืจึทืช ืžึถื—ื“ึธืœ: ืื•ื˜ื•ืžื˜ื™

ื“ืจื•ืฉ: ืœื.

ื”ืฆื™ื’: 3.0

[ืชื•ื›ื ื™ืช:x] ืกืขื™ืฃ ื“ื•ื’ืžื”
[ืชื•ื›ื ื™ืช:ื—ืชื•ืœ]
ืคืงื•ื“ื” =/bin/cat
process_name=%(program_name)s
numprocs=1
ืกืคืจื™ื™ื”=/ Tmp
umask=022
ืขื“ื™ืคื•ืช = 999
ื”ืชื—ืœื” ืื•ื˜ื•ืžื˜ื™ืช = ื ื›ื•ืŸ
autorestart=ืœื ืฆืคื•ื™
startsecs=10
ื ืกื™ื•ื ื•ืช ื”ืชื—ืœื”=3
exitcodes=0,2
stopsignal=TERM
stopwaitsecs=10
stopasgroup=false
killasgroup=false
ืžืฉืชืžืฉ=ื›ืจื™ืก
redirect_stderr=false
stdout_logfile=/a/path
stdout_logfile_maxbytes=1MB
stdout_logfile_backups=10
stdout_capture_maxbytes=1MB
stdout_events_enabled=false
stderr_logfile=/a/path
stderr_logfile_maxbytes=1MB
stderr_logfile_backups=10
stderr_capture_maxbytes=1MB
stderr_events_enabled=false
environment=A="1",B="2"
serverurl=AUTO

[ืœึดื›ืœื•ึนืœ] ืกืขื™ืฃ ื”ื’ื“ืจื•ืช
ืืœ ื”ืื ื™ supervisord.conf ื”ืงื•ื‘ืฅ ืขืฉื•ื™ ืœื”ื›ื™ืœ ืงื˜ืข ื‘ืฉื [ืœึดื›ืœื•ึนืœ]. ืื ื”ืชืฆื•ืจื”
ื”ืงื•ื‘ืฅ ืžื›ื™ืœ [ืœึดื›ืœื•ึนืœ] ืกืขื™ืฃ, ืขืœื™ื• ืœื”ื›ื™ืœ ืžืคืชื— ื™ื—ื™ื“ ื‘ืฉื "ืงื‘ืฆื™ื". ื”
ืขืจื›ื™ื ื‘ืžืคืชื— ื–ื” ืžืฆื™ื™ื ื™ื ืงื•ื‘ืฆื™ ืชืฆื•ืจื” ืื—ืจื™ื ืฉื™ื™ื›ืœืœื• ื‘ืชื•ืš ื”-
ืชืฆื•ืจื”.

[ืœึดื›ืœื•ึนืœ] ืกืขื™ืฃ ืขืจื›ื™ื
ืงื‘ืฆื™ื
ืจืฆืฃ ืžื•ืคืจื“ ืžืจื•ื•ื—ื™ื ืฉืœ ื’ืœื•ื‘ืก ืฉืœ ืงื‘ืฆื™ื. ื›ืœ ื’ืœื•ื‘ ืงื•ื‘ืฅ ื™ื›ื•ืœ ืœื”ื™ื•ืช ืžื•ื—ืœื˜ ืื• ื™ื—ืกื™.
ืื ื’ืœื•ื‘ ื”ืงื•ื‘ืฅ ื”ื•ื ื™ื—ืกื™, ื”ื•ื ื ื—ืฉื‘ ื›ื™ื—ืกื™ ืœืžื™ืงื•ื ื”-
ืงื•ื‘ืฅ ืชืฆื•ืจื” ื”ื›ื•ืœืœ ืื•ืชื•. "ื’ืœื•ื‘" ื”ื•ื ืชื‘ื ื™ืช ืงื•ื‘ืฅ ืฉืชื•ืืžืช ืืช ื
ื“ืคื•ืก ืฉืฆื•ื™ืŸ ื‘ื”ืชืื ืœื›ืœืœื™ื ื”ืžืฉืžืฉื™ื ืืช ืžืขื˜ืคืช ื™ื•ื ื™ืงืก. ืื™ืŸ ื”ืจื—ื‘ืช ื˜ื™ืœื“ื”
ื ืขืฉื”, ืื‘ืœ *, ?, ื•ื˜ื•ื•ื—ื™ ืชื•ื•ื™ื ื”ืžื•ื‘ืขื™ื ืขื [] ื™ื”ื™ื” ืžื•ืชืื ื‘ืฆื•ืจื” ื ื›ื•ื ื”.
ื›ื•ืœืœ ืจืงื•ืจืกื™ื‘ื™ ืžืงื‘ืฆื™ื ื›ืœื•ืœื™ื ืื™ื ื ื ืชืžื›ื™ื.

ื‘ึผึฐืจึดื™ืจึทืช ืžึถื—ื“ึธืœ: ืื™ืŸ ื‘ืจื™ืจืช ืžื—ื“ืœ (ื—ื•ื‘ื”)

ื“ืจื•ืฉ: ื›ืŸ.

ื”ืฆื™ื’: 3.0

[ืœึดื›ืœื•ึนืœ] ืกืขื™ืฃ ื“ื•ื’ืžื”
[ืœึดื›ืœื•ึนืœ]
files = /an/absolute/filename.conf /an/absolute/*.conf foo.conf config??.conf

[ืงื‘ื•ืฆื”:x] ืกืขื™ืฃ ื”ื’ื“ืจื•ืช
ืœืขืชื™ื ืงืจื•ื‘ื•ืช ืฉื™ืžื•ืฉื™ ืœืงื‘ืฅ ืงื‘ื•ืฆื•ืช ืชื”ืœื™ื›ื™ื "ื”ื•ืžื•ื’ื ื™ื•ืช" (ื”ื™ื“ื•ืข ื’ื ื‘ืฉื "ืชื•ื›ื ื™ื•ืช") ืœื›ื“ื™ ื
ืงื‘ื•ืฆืช ืชื”ืœื™ื›ื™ื "ื”ื˜ืจื•ื’ื ื™ื™ื" ื›ืš ืฉื ื™ืชืŸ ืœืฉืœื•ื˜ ืขืœื™ื”ื ื›ื™ื—ื™ื“ื” ืžื‘ื™ืช ื”ืžืžื•ื ื”
ืžืžืฉืงื™ ื‘ืงืจ ืฉื•ื ื™ื.

ื›ื“ื™ ืœื”ื›ื ื™ืก ืชื•ื›ื ื™ื•ืช ืœืงื‘ื•ืฆื” ื›ื“ื™ ืฉืชื•ื›ืœ ืœื”ืชื™ื™ื—ืก ืืœื™ื”ืŸ ื›ื™ื—ื™ื“ื”, ื”ื’ื“ืจ ื [ืงื‘ื•ืฆื”:x] ืกืขื™ืฃ
ื‘ืงื•ื‘ืฅ ื”ืชืฆื•ืจื” ืฉืœืš. ืขืจืš ื›ื•ืชืจืช ื”ืงื‘ื•ืฆื” ื”ื•ื ืžื•ืจื›ื‘. ื–ื• ื”ืžื™ืœื”
"ืงื‘ื•ืฆื”", ื•ืœืื—ืจื™ื” ื™ืฉื™ืจื•ืช ื ืงื•ื“ืชื™ื™ื, ื•ืœืื—ืจ ืžื›ืŸ ืืช ืฉื ื”ืงื‘ื•ืฆื”. ืขืจืš ื›ื•ืชืจืช ืฉืœ [ืงื‘ื•ืฆื”:ืคื•]
ืžืชืืจ ืงื‘ื•ืฆื” ืขื ื”ืฉื "ืคื•". ื”ืฉื ืžืฉืžืฉ ื‘ืชื•ืš ื™ื™ืฉื•ืžื™ ืœืงื•ื—
ื”ืฉื•ืœื˜ื™ื ื‘ืชื”ืœื™ื›ื™ื ืฉื ื•ืฆืจื™ื ื›ืชื•ืฆืื” ืžืชืฆื•ืจื” ื–ื•. ื–ื”
ืฉื’ื™ืื” ื‘ื™ืฆื™ืจืช ื ืงื‘ื•ืฆื” ืกืขื™ืฃ ืฉืื™ืŸ ืœื• ืฉื. ื”ืฉื ืœื ื™ื›ืœื•ืœ ื
ืชื• ื ืงื•ื“ืชื™ื™ื ืื• ืชื• ืกื•ื’ืจื™ื™ื.

ืขื‘ื•ืจ [ืงื‘ื•ืฆื”:x], ื—ื™ื™ื‘ ืœื”ื™ื•ืช ืื—ื“ ืื• ื™ื•ืชืจ [ืชื•ื›ื ื™ืช:x] ืงื˜ืขื™ื ื‘ืžืงื•ืžื•ืช ืื—ืจื™ื ืฉืœืš
ืงื•ื‘ืฅ ื”ืชืฆื•ืจื”, ื•ื”ืงื‘ื•ืฆื” ื—ื™ื™ื‘ืช ืœื”ืชื™ื™ื—ืก ืืœื™ื”ื ืœืคื™ ื”ืฉื ื‘- ืชื•ื›ื ื™ื•ืช ืขืจืš.

ืื ืงื‘ื•ืฆื•ืช ืชื”ืœื™ืš "ื”ื•ืžื•ื’ื ื™ื•ืช" (ืžื™ื•ืฆื’ื•ืช ืขืœ ื™ื“ื™ ืงื˜ืขื™ ืชื•ื›ื ื™ืช) ืžืžื•ืงืžื•ืช ืœืชื•ืš a
ืงื‘ื•ืฆื” "ื”ื˜ืจื•ื’ื ื™ืช" ื“ืจืš [ืงื‘ื•ืฆื”:x] ืžืงื˜ืขื™ื ืชื•ื›ื ื™ื•ืช ืงื•, ื”ืงื‘ื•ืฆื•ืช ื”ื”ื•ืžื•ื’ื ื™ื•ืช ืฉ
ืžืฉืชืžืขื™ื ืžืกืขื™ืฃ ื”ืชื•ื›ื ื™ืช ืœื ื™ืชืงื™ื™ืžื• ื‘ื–ืžืŸ ื”ืจื™ืฆื” ื‘-Supervisor. ื‘ืžืงื•ื ื–ืืช, ื”ื›ืœ
ืชื”ืœื™ื›ื™ื ื”ืฉื™ื™ื›ื™ื ืœื›ืœ ืื—ืช ืžื”ืงื‘ื•ืฆื•ืช ื”ื”ื•ืžื•ื’ื ื™ื•ืช ื™ื•ื›ื ืกื• ืœ-
ืงื‘ื•ืฆื” ื”ื˜ืจื•ื’ื ื™ืช. ืœื“ื•ื’ืžื”, ื‘ื”ื™ื ืชืŸ ืชืฆื•ืจืช ื”ืงื‘ื•ืฆื” ื”ื‘ืื”:

[ืงื‘ื•ืฆื”:ืคื•]
ืชื•ื›ื ื™ื•ืช=ื‘ืจ,ื‘ืื–
ืขื“ื™ืคื•ืช = 999

ื‘ื”ืชื—ืฉื‘ ื‘ืืžื•ืจ ืœืขื™ืœ, ื‘ื”ืคืขืœืช Supervisord, ื” ื‘ึผึธืจ ื• ื‘ืื– ืงื‘ื•ืฆื•ืช ื”ื•ืžื•ื’ื ื™ื•ืช ืœื
ืงื™ื™ืžื™ื, ื•ื”ืชื”ืœื™ื›ื™ื ืฉื”ื™ื• ืชื—ืชื™ื”ื ื™ื•ืขื‘ืจื• ื›ืขืช ืœ- Foo
ืงื‘ื•ืฆื”.

[ืงื‘ื•ืฆื”:x] ืกืขื™ืฃ ืขืจื›ื™ื
ืชื•ื›ื ื™ื•ืช
ืจืฉื™ืžื” ืžื•ืคืจื“ืช ื‘ืคืกื™ืงื™ื ืฉืœ ืฉืžื•ืช ืชื•ื›ื ื™ื•ืช. ื”ืชื•ื›ื ื™ื•ืช ื”ืžืคื•ืจื˜ื•ืช ื”ื•ืคื›ื•ืช ืœื—ื‘ืจื™ื
ืฉืœ ื”ืงื‘ื•ืฆื”.

ื‘ึผึฐืจึดื™ืจึทืช ืžึถื—ื“ึธืœ: ืื™ืŸ ื‘ืจื™ืจืช ืžื—ื“ืœ (ื—ื•ื‘ื”)

ื“ืจื•ืฉ: ื›ืŸ.

ื”ืฆื™ื’: 3.0

ืขื“ื™ืคื•ืช
ืžืกืคืจ ืขื“ื™ืคื•ืช ื‘ื“ื•ืžื” ืœ-a [ืชื•ื›ื ื™ืช:x] ืขืจืš ืขื“ื™ืคื•ืช ืฉื”ื•ืงืฆื” ืœืงื‘ื•ืฆื”.

ื‘ึผึฐืจึดื™ืจึทืช ืžึถื—ื“ึธืœ: 999

ื“ืจื•ืฉ: ืœื.

ื”ืฆื™ื’: 3.0

[ืงื‘ื•ืฆื”:x] ืกืขื™ืฃ ื“ื•ื’ืžื”
[ืงื‘ื•ืฆื”:ืคื•]
ืชื•ื›ื ื™ื•ืช=ื‘ืจ,ื‘ืื–
ืขื“ื™ืคื•ืช = 999

[fcgi-program:x] ืกืขื™ืฃ ื”ื’ื“ืจื•ืช
ืžืคืงื— ื™ื›ื•ืœ ืœื ื”ืœ ืงื‘ื•ืฆื•ืช ืฉืœ FastCGI ืชื”ืœื™ื›ื™ื ืฉื›ื•ืœื ืžืื–ื™ื ื™ื ื‘ืื•ืชื• ืฉืงืข.
ืขื“ ื›ื”, ื’ืžื™ืฉื•ืช ื”ืคืจื™ืกื” ืฉืœ FastCGI ื”ื™ื™ืชื” ืžื•ื’ื‘ืœืช. ื›ื“ื™ ืœืงื‘ืœ ืชื”ืœื™ืš ืžืœื
ื ื™ื”ื•ืœ, ืืชื” ื™ื›ื•ืœ ืœื”ืฉืชืžืฉ ื‘-mod_fastcgi ืชื—ืช Apache ืื‘ืœ ืื– ื”ื™ื™ืช ืชืงื•ืข ืขื ื–ื” ืฉืœ Apache
ืžื•ื“ืœ ืžืงื‘ื™ืœื™ื•ืช ืœื ื™ืขื™ืœ ืฉืœ ืชื”ืœื™ืš ืื• ื—ื•ื˜ ืื—ื“ ืœื›ืœ ื—ื™ื‘ื•ืจ. ื‘ื ื•ืกืฃ ืœ
ื“ื•ืจืฉ ื™ื•ืชืจ ืžืฉืื‘ื™ ืžืขื‘ื“ ื•ื–ื™ื›ืจื•ืŸ, ื”ืชื”ืœื™ืš/ื—ื•ื˜ ืœื›ืœ ืžื•ื“ืœ ื—ื™ื‘ื•ืจ ื™ื›ื•ืœ ืœื”ื™ื•ืช
ืจื•ื•ื™ ื‘ืžื”ื™ืจื•ืช ืขืœ ื™ื“ื™ ืžืฉืื‘ ืื™ื˜ื™, ื•ืžื•ื ืข ืืช ื”ื’ืฉืช ืžืฉืื‘ื™ื ืื—ืจื™ื. ื‘
ื›ื“ื™ ืœื ืฆืœ ืฉืจืชื™ ืื™ื ื˜ืจื ื˜ ื—ื“ืฉื™ื ื™ื•ืชืจ ืžื•ื ืขื™ ืื™ืจื•ืขื™ื ื›ื’ื•ืŸ lighttpd ืื• nginx which
ืืœ ืชื›ืœื•ืœ ืžื ื”ืœ ืชื”ืœื™ื›ื™ื ืžื•ื‘ื ื”, ื”ื™ื™ืช ืฆืจื™ืš ืœื”ืฉืชืžืฉ ื‘ืกืงืจื™ืคื˜ื™ื ื›ืžื• cgi-fcgi ืื•
spawn-fcgi. ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ื”ื ื‘ืฉื™ืœื•ื‘ ืขื ืžื ื”ืœ ืชื”ืœื™ื›ื™ื ื›ื’ื•ืŸ ืžืคืงื—
ืื• daemontools ืืš ื“ื•ืจืฉื™ื ืฉื›ืœ ืชื”ืœื™ืš ืฆืืฆื ืฉืœ FastCGI ื™ื™ืงืฉืจ ืœืฉืงืข ืžืฉืœื•. ื”
ื”ื—ืกืจื•ื ื•ืช ืฉืœ ื–ื” ื”ื: ืชืฆื•ืจืช ืฉืจืช ืื™ื ื˜ืจื ื˜ ืžืกื•ื‘ื›ืช ืฉืœื ืœืฆื•ืจืš, ืœื ื—ื™ื ื ื™ืช
ื”ืคืขืœื” ืžื—ื“ืฉ, ื•ืกื•ื‘ืœื ื•ืช ืชืงืœื•ืช ืžื•ืคื—ืชืช. ืขื ืคื—ื•ืช ืฉืงืขื™ื ืœื”ื’ื“ืจื”, ืฉืจืช ืื™ื ื˜ืจื ื˜
ื”ืชืฆื•ืจื•ืช ืงื˜ื ื•ืช ื‘ื”ืจื‘ื” ืื ืงื‘ื•ืฆื•ืช ืฉืœ ืชื”ืœื™ื›ื™ FastCGI ื™ื›ื•ืœื•ืช ืœื—ืœื•ืง ืฉืงืขื™ื. ืžึฐืฉืื•ึผืชึธืฃ
ืฉืงืขื™ื ืžืืคืฉืจื™ื ื”ืคืขืœื” ืžื—ื“ืฉ ื—ื™ื ื ื™ืช ืžื›ื™ื•ื•ืŸ ืฉื”ืฉืงืข ื ืฉืืจ ืงืฉื•ืจ ืœืชื”ืœื™ืš ื”ืื‘
ื‘ื–ืžืŸ ืฉื›ืœ ืื—ื“ ืžืชื”ืœื™ื›ื™ ื”ืฆืืฆื ืžื•ืคืขืœ ืžื—ื“ืฉ. ืœื‘ืกื•ืฃ, ืฉืงืขื™ื ืžืฉื•ืชืคื™ื ื”ื ื™ื•ืชืจ
ืขืžื™ื“ ื‘ืคื ื™ ืชืงืœื•ืช ืžื›ื™ื•ื•ืŸ ืฉืื ืชื”ืœื™ืš ื ืชื•ืŸ ื ื›ืฉืœ, ืชื”ืœื™ื›ื™ื ืื—ืจื™ื ื™ื›ื•ืœื™ื ืœื”ืžืฉื™ืš ืœืฉืจืช
ื—ื™ื‘ื•ืจื™ื ื ื›ื ืกื™ื.

ืขื ืชืžื™ื›ืช ื”ืฉืจืฆื” ืžืฉื•ืœื‘ืช ืฉืœ FastCGI, Supervisor ื ื•ืชืŸ ืœืš ืืช ื”ื˜ื•ื‘ ืžืฉื ื™ ื”ืขื•ืœืžื•ืช.
ืืชื” ืžืงื‘ืœ ื ื™ื”ื•ืœ ืชื”ืœื™ื›ื™ื ืžืœื ืขื ืงื‘ื•ืฆื•ืช ืฉืœ ืชื”ืœื™ื›ื™ FastCGI ื”ื—ื•ืœืงื™ื ืฉืงืขื™ื
ืžื‘ืœื™ ืœื”ื™ื•ืช ืงืฉื•ืจ ืœืฉืจืช ืื™ื ื˜ืจื ื˜ ืžืกื•ื™ื. ื–ื• ื”ืคืจื“ื” ื ืงื™ื™ื” ืฉืœ ื“ืื’ื•ืช,
ืžื” ืฉืžืืคืฉืจ ืœืฉืจืช ื”ืื™ื ื˜ืจื ื˜ ื•ืœืžื ื”ืœ ื”ืชื”ืœื™ืš ืœืขืฉื•ืช ื›ืœ ืื—ื“ ืžื” ืฉื”ื•ื ืขื•ืฉื” ื”ื›ื™ ื˜ื•ื‘.

ื”ืขืจื”:
ืžื ื”ืœ ื”ืฉืงืขื™ื ื‘-Supervisor ืคื•ืชื— ื‘ืžืงื•ืจ ื›ื“ื™ ืœืชืžื•ืš ื‘ืชื”ืœื™ื›ื™ FastCGI
ืื‘ืœ ื–ื” ืœื ืžื•ื’ื‘ืœ ืœ-FastCGI. ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื’ื ื‘ืคืจื•ื˜ื•ืงื•ืœื™ื ืื—ืจื™ื ืœืœื ืžื™ื•ื—ื“
ืชึฐืฆื•ึผืจึธื”. ื›ืœ ืชื•ื›ื ื™ืช ืฉื™ื›ื•ืœื” ืœื’ืฉืช ืœืฉืงืข ืคืชื•ื— ืžืชืืจ ืงื•ื‘ืฅ (ืœืžืฉืœ
ืขื socket.fromfd ื‘-Python) ื™ื›ื•ืœ ืœื”ืฉืชืžืฉ ื‘-socket manager. ื”ืžืคืงื— ื™ื”ื™ื”
ืœื™ืฆื•ืจ ืื•ื˜ื•ืžื˜ื™ืช ืืช ื”ืฉืงืข, ืœืื’ื“ ื•ืœื”ืื–ื™ืŸ ืœืคื ื™ ืฉืžื–ืœื’ื™ื ืืช ื”ื™ืœื“ ื”ืจืืฉื•ืŸ ื‘-a
ืงึฐื‘ื•ึผืฆึธื”. ื”ืฉืงืข ื™ื•ืขื‘ืจ ืœื›ืœ ื™ืœื“ ื‘ืžืกืคืจ ืžืชืืจ ื”ืงื•ื‘ืฅ 0 (ืืคืก).
ื›ืืฉืจ ื”ื™ืœื“ ื”ืื—ืจื•ืŸ ื‘ืงื‘ื•ืฆื” ื™ื•ืฆื, ื”ืžืคืงื— ื™ืกื’ื•ืจ ืืช ื”ืฉืงืข.

ื›ืœ ื”ืืคืฉืจื•ื™ื•ืช ื”ืขื•ืžื“ื•ืช ืœืจืฉื•ืช [ืชื•ื›ื ื™ืช:x] ืกืขื™ืคื™ื ืžื›ื•ื‘ื“ื™ื ื’ื ืขืœ ื™ื“ื™ ืชื•ื›ื ื™ืช fcgi
ืกืขื™ืคื™ื.

[fcgi-program:x] ืกืขื™ืฃ ืขืจื›ื™ื
[fcgi-program:x] ืœื—ืœืงื™ื ื™ืฉ ืžืคืชื— ื™ื—ื™ื“ ืืฉืจ [ืชื•ื›ื ื™ืช:x] ืœืงื˜ืขื™ื ืื™ืŸ.

ืฉืงืข
ืฉืงืข FastCGI ืขื‘ื•ืจ ืชื•ื›ื ื™ืช ื–ื•, ืฉืงืข ืชื—ื•ื TCP ืื• UNIX. ืขื‘ื•ืจ ืฉืงืขื™ TCP,
ื”ืฉืชืžืฉ ื‘ืคื•ืจืžื˜ ื”ื–ื”: tcp://localhost:9002. ืขื‘ื•ืจ ืฉืงืขื™ ืชื—ื•ื UNIX, ื”ืฉืชืžืฉ
unix:///absolute/path/to/file.sock. ื‘ื™ื˜ื•ื™ื™ ืžื—ืจื•ื–ืช ืžื•ืขืจื›ื™ื ืžื•ืœ ื
ืžื™ืœื•ืŸ ื”ืžื›ื™ืœ ืืช ื”ืžืคืชื—ื•ืช "ืฉื_ืชื•ื›ื ื™ืช" ื•"ื›ืืŸ" (ื”ืกืคืจื™ื™ื” ืฉืœ
ืงื•ื‘ืฅ ื”ืชืฆื•ืจื” ืฉืœ supervisord).

ื‘ึผึฐืจึดื™ืจึทืช ืžึถื—ื“ึธืœ: ืื™ืŸ ื‘ืจื™ืจืช ืžื—ื“ืœ.

ื“ืจื•ืฉ: ื›ืŸ.

ื”ืฆื™ื’: 3.0

socket_owner
ืขื‘ื•ืจ ืฉืงืขื™ ืชื—ื•ื UNIX, ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ืคืจืžื˜ืจ ื–ื” ื›ื“ื™ ืœืฆื™ื™ืŸ ืืช ื”ืžืฉืชืžืฉ ื•ื”ืงื‘ื•ืฆื” ืขื‘ื•ืจื
ืฉืงืข FastCGI. ื™ื›ื•ืœ ืœื”ื™ื•ืช ืฉื ืžืฉืชืžืฉ UNIX (ืœืžืฉืœ chrism) ืื• ืฉื ืžืฉืชืžืฉ ื•ืงื‘ื•ืฆื” ืฉืœ UNIX
ืžื•ืคืจื“ื™ื ืขืœ ื™ื“ื™ ื ืงื•ื“ืชื™ื™ื (ืœืžืฉืœ chrism:wheel).

ื‘ึผึฐืจึดื™ืจึทืช ืžึถื—ื“ึธืœ: ืžืฉืชืžืฉ ื‘ืขืจื›ืช ื”ืžืฉืชืžืฉ ื•ื”ืงื‘ื•ืฆื” ืขื‘ื•ืจ ืชื•ื›ื ื™ืช fcgi

ื“ืจื•ืฉ: ืœื.

ื”ืฆื™ื’: 3.0

socket_mode
ืขื‘ื•ืจ ืฉืงืขื™ ืชื—ื•ื UNIX, ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ืคืจืžื˜ืจ ื–ื” ื›ื“ื™ ืœืฆื™ื™ืŸ ืืช ืžืฆื‘ ื”ื”ืจืฉืื”.

ื‘ึผึฐืจึดื™ืจึทืช ืžึถื—ื“ึธืœ: 0700

ื“ืจื•ืฉ: ืœื.

ื”ืฆื™ื’: 3.0

ื”ืชื™ื™ืขืฅ [ืชื•ื›ื ื™ืช:x] ืกืขื™ืฃ ื”ื’ื“ืจื•ืช ืขื‘ื•ืจ ืžืคืชื—ื•ืช ืžื•ืชืจื™ื ืื—ืจื™ื, ื“ืœืชื ืืช ื”ืื™ืœื•ืฆื™ื ืœืขื™ืœ
ื•ืชื•ืกืคื•ืช.

[fcgi-program:x] ืกืขื™ืฃ ื“ื•ื’ืžื”
[fcgi-program:fcgiprogramname]
command=/usr/bin/example.fcgi
socket=unix:///var/run/supervisor/%(program_name)s.sock
socket_owner=chrism
socket_mode=0700
process_name=%(program_name)s_%(process_num)02d
numprocs=5
ืกืคืจื™ื™ื”=/ Tmp
umask=022
ืขื“ื™ืคื•ืช = 999
ื”ืชื—ืœื” ืื•ื˜ื•ืžื˜ื™ืช = ื ื›ื•ืŸ
autorestart=ืœื ืฆืคื•ื™
startsecs=1
ื ืกื™ื•ื ื•ืช ื”ืชื—ืœื”=3
exitcodes=0,2
stopsignal=QUIT
stopasgroup=false
killasgroup=false
stopwaitsecs=10
ืžืฉืชืžืฉ=ื›ืจื™ืก
redirect_stderr=true
stdout_logfile=/a/path
stdout_logfile_maxbytes=1MB
stdout_logfile_backups=10
stdout_events_enabled=false
stderr_logfile=/a/path
stderr_logfile_maxbytes=1MB
stderr_logfile_backups=10
stderr_events_enabled=false
environment=A="1",B="2"
serverurl=AUTO

[ืžืื–ื™ืŸ ืื™ืจื•ืขื™ื:x] ืกืขื™ืฃ ื”ื’ื“ืจื•ืช
ื”ืžืคืงื— ืžืืคืฉืจ ืœืงื‘ื•ืฆื•ืช ืชื”ืœื™ื›ื™ื ื”ื•ืžื•ื’ื ื™ื•ืช ืžื™ื•ื—ื“ื•ืช ("ืžืื’ืจื™ ืžืื–ื™ื ื™ื ืœืื™ืจื•ืขื™ื")
ืžื•ื’ื“ืจ ื‘ืชื•ืš ืงื•ื‘ืฅ ื”ืชืฆื•ืจื”. ื‘ืจื™ื›ื•ืช ืืœื• ืžื›ื™ืœื•ืช ืชื”ืœื™ื›ื™ื ืฉื ื•ืขื“ื•
ืœืงื‘ืœ ื•ืœื”ื’ื™ื‘ ืœื”ื•ื“ืขื•ืช ืขืœ ืื™ืจื•ืขื™ื ืžืžืขืจื›ืช ื”ืื™ืจื•ืขื™ื ืฉืœ ื”ืžืคืงื—. ืจืื” ืื™ืจื•ืขื™ื ืขื‘ื•ืจ
ื”ืกื‘ืจ ื›ื™ืฆื“ ืคื•ืขืœื™ื ืื™ืจื•ืขื™ื ื•ื›ื™ืฆื“ ืœื™ื™ืฉื ืชื•ื›ื ื™ื•ืช ืฉื ื™ืชืŸ ืœื”ื›ืจื™ื– ืขืœื™ื”ืŸ
ืžืื–ื™ื ื™ ืื™ืจื•ืขื™ื.

ืฉื™ืžื• ืœื‘ ืฉื›ืœ ื”ืืคืฉืจื•ื™ื•ืช ื”ืขื•ืžื“ื•ืช ืœืจืฉื•ืช [ืชื•ื›ื ื™ืช:x] ืงื˜ืขื™ื ืžื›ื•ื‘ื“ื™ื ืขืœ ื™ื“ื™ eventlistener
ืกืขื™ืคื™ื ืืœื ืœ stdout_capture_maxbytes ื• stderr_capture_maxbytes (ืžืื–ื™ื ื™ ืื™ืจื•ืขื™ื
ืœื ื™ื›ื•ืœ ืœืคืœื•ื˜ ืื™ืจื•ืขื™ ืชืงืฉื•ืจืช ืชื”ืœื™ืš, ืจืื” capture_mode).

[ืžืื–ื™ืŸ ืื™ืจื•ืขื™ื:x] ืกืขื™ืฃ ืขืจื›ื™ื
[ืžืื–ื™ืŸ ืื™ืจื•ืขื™ื:x] ืœื—ืœืงื™ื ื™ืฉ ื›ืžื” ืžืคืชื—ื•ืช ืืฉืจ [ืชื•ื›ื ื™ืช:x] ืœืงื˜ืขื™ื ืื™ืŸ.

ื’ื•ื“ืœ_buffer
ื’ื•ื“ืœ ืžืื’ืจ ืชื•ืจ ื”ืื™ืจื•ืขื™ื ืฉืœ ืžืื’ืจ ืžืื–ื™ื ื™ ื”ืื™ืจื•ืขื™ื. ื›ืืฉืจ ืžืื’ืจ ืื™ืจื•ืขื™ื ืฉืœ ืžืื’ืจ ืžืื–ื™ื ื™ื
ืขื•ืœื” ืขืœ ื’ื“ื•ืชื™ื• (ื›ืคื™ ืฉื™ื›ื•ืœ ืœืงืจื•ืช ื›ืืฉืจ ืžืื’ืจ ืžืื–ื™ื ื™ื ืœืื™ืจื•ืขื™ื ืœื ื™ื›ื•ืœ ืœืขืžื•ื“ ื‘ืงืฆื‘ ืฉืœ ื›ืœ
ืื™ืจื•ืขื™ื ืฉื ืฉืœื—ื• ืืœื™ื•), ื”ืื™ืจื•ืข ื”ื™ืฉืŸ ื‘ื™ื•ืชืจ ื‘ืžืื’ืจ ื ื–ืจืง.

ืื™ืจื•ืขื™ื
ืจืฉื™ืžื” ืžื•ืคืจื“ืช ื‘ืคืกื™ืงื™ื ืฉืœ ืฉืžื•ืช ืกื•ื’ื™ ืื™ืจื•ืขื™ื ืฉื”ืžืื–ื™ืŸ ื”ื–ื” "ืžืชืขื ื™ื™ืŸ" ื‘ื”ื
ืงื‘ืœืช ื”ืชืจืื•ืช ืขื‘ื•ืจ (ืจืื” event_types ืขื‘ื•ืจ ืจืฉื™ืžื” ืฉืœ ืฉืžื•ืช ืกื•ื’ื™ ืื™ืจื•ืขื™ื ื—ื•ืงื™ื™ื).

result_handler
A pkg_resources ื›ื ื™ืกื” ื ืงื•ื“ื” ืžื—ืจื•ื–ืช ื–ื” ื ืคืชืจ ืœืคื™ื™ืชื•ืŸ ื”ื ื™ืชืŸ ืœื”ืชืงืฉืจื•ืช. ื‘ืจื™ืจืช ื”ืžื—ื“ืœ
ื”ืขืจืš ื”ื•ื supervisor.dispatchers:default_handler. ืฆื™ื•ืŸ ืชื•ืฆืื” ื—ืœื•ืคื™ืช
ืžื˜ืคืœ ื”ื•ื ื“ื‘ืจ ืžืื•ื“ ื ื“ื™ืจ ืฉืฆืจื™ืš ืœืขืฉื•ืช, ื•ื›ืชื•ืฆืื” ืžื›ืš, ืื™ืš ืœื™ืฆื•ืจ ืื—ื“ ื”ื•ื
ืœื ืžืชื•ืขื“.

ื”ืชื™ื™ืขืฅ [ืชื•ื›ื ื™ืช:x] ืกืขื™ืฃ ื”ื’ื“ืจื•ืช ืขื‘ื•ืจ ืžืคืชื—ื•ืช ืžื•ืชืจื™ื ืื—ืจื™ื, ื“ืœืชื ืืช ื”ืื™ืœื•ืฆื™ื ืœืขื™ืœ
ื•ืชื•ืกืคื•ืช.

[ืžืื–ื™ืŸ ืื™ืจื•ืขื™ื:x] ืกืขื™ืฃ ื“ื•ื’ืžื”
[eventlistener:theeventlistenername]
command=/bin/eventlistener
process_name=%(program_name)s_%(process_num)02d
numprocs=5
events=PROCESS_STATE
buffer_size=10
ืกืคืจื™ื™ื”=/ Tmp
umask=022
ืขื“ื™ืคื•ืช=-1
ื”ืชื—ืœื” ืื•ื˜ื•ืžื˜ื™ืช = ื ื›ื•ืŸ
autorestart=ืœื ืฆืคื•ื™
startsecs=1
ื ืกื™ื•ื ื•ืช ื”ืชื—ืœื”=3
exitcodes=0,2
stopsignal=QUIT
stopwaitsecs=10
stopasgroup=false
killasgroup=false
ืžืฉืชืžืฉ=ื›ืจื™ืก
redirect_stderr=false
stdout_logfile=/a/path
stdout_logfile_maxbytes=1MB
stdout_logfile_backups=10
stdout_events_enabled=false
stderr_logfile=/a/path
stderr_logfile_maxbytes=1MB
stderr_logfile_backups=10
stderr_events_enabled=false
environment=A="1",B="2"
serverurl=AUTO

[rpcinterface:x] ืกืขื™ืฃ ื”ื’ื“ืจื•ืช
ืžื•ืกื™ืฃ rpcinterface:x ื”ื”ื’ื“ืจื•ืช ื‘ืงื•ื‘ืฅ ื”ืชืฆื•ืจื” ืฉื™ืžื•ืฉื™ื•ืช ืจืง ืœืื ืฉื™ื ืืฉืจ
ืจื•ืฆื” ืœื”ืจื—ื™ื‘ ืืช ื”ืžืคืงื— ืขื ื”ืชื ื”ื’ื•ืช ืžื•ืชืืžืช ืื™ืฉื™ืช ื ื•ืกืคืช.

ื‘ืงื•ื‘ืฅ ื”ืชืฆื•ืจื” ืœื“ื•ื’ืžื”, ื™ืฉ ืงื˜ืข ืขื ืฉื [rpcinterface:ืกื•ืคืจvisor].
ื›ื‘ืจื™ืจืช ืžื—ื“ืœ ื–ื” ื ืจืื” ื›ืžื• ื”ื‘ื.

[rpcinterface:ืกื•ืคืจvisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface

ืืœ ื”ืื ื™ [rpcinterface:ืกื•ืคืจvisor] ืกืขื™ืฃ ืฆืจื™ืš ืœื”ื™ืฉืืจ ื‘ืชืฆื•ืจื” ืฉืœ ื”ืชืงืŸ
ื”ื’ื“ืจืช ื”ืžืคืงื— ืœืขื‘ื•ื“ ื›ืžื• ืฉืฆืจื™ืš. ืื ืืชื” ืœื ืจื•ืฆื” ืฉื”ืžืคืงื— ื™ืขืฉื” ืžืฉื”ื•
ืขื“ื™ื™ืŸ ืœื ืขื•ืฉื” ืžื—ื•ืฅ ืœืงื•ืคืกื”, ื–ื” ื›ืœ ืžื” ืฉืืชื” ืฆืจื™ืš ืœื“ืขืช ืขืœ ืกื•ื’ ื–ื” ืฉืœ
ืกึธืขึดื™ืฃ.

ืขื ื–ืืช, ืื ื‘ืจืฆื•ื ืš ืœื”ื•ืกื™ืฃ ืžืจื—ื‘ื™ ืฉืžื•ืช ืฉืœ ืžืžืฉืง rpc ื›ื“ื™ ืœื”ืชืื™ื ืื™ืฉื™ืช ืืช ื”ืžืคืงื—, ืืชื”
ืขืฉื•ื™ ืœื”ื•ืกื™ืฃ ืขื•ื“ [rpcinterface:foo] ืงื˜ืขื™ื, ืฉื‘ื”ื "foo" ืžื™ื™ืฆื’ ืืช ืžืจื—ื‘ ื”ืฉืžื•ืช ืฉืœ
ื”ืžืžืฉืง (ืžืฉื•ืจืฉ ื”ืื™ื ื˜ืจื ื˜), ื•ื”ืขืจืš ืฉื ืงืจื ืขืœ ื™ื“ื™ supervisor.rpcinterface_factory
ื”ื•ื ืžืคืขืœ ื”ื ื™ืชืŸ ืœื”ืชืงืฉืจื•ืช ืฉืฆืจื™ื›ื” ืœื”ื™ื•ืช ื—ืชื™ืžืช ืคื•ื ืงืฆื™ื” ืฉืžืงื‘ืœืช ืกื™ื ื’ืœ
ื˜ื™ืขื•ืŸ ืคื•ื–ื™ืฆื™ื•ื ืœื™ ืžึฐืคึทืงึตื—ึท ื•ื›ืžื” ืืจื’ื•ืžื ื˜ื™ื ืฉืœ ืžื™ืœืช ืžืคืชื— ื”ื ื“ืจืฉื™ื ืœื‘ื™ืฆื•ืขื™ื
ืชึฐืฆื•ึผืจึธื”. ื›ืœ ืฆืžื“ื™ ืžืคืชื—/ืขืจืš ื ื•ืกืคื™ื ืฉื”ื•ื’ื“ืจื• ื‘ืชื•ืš [rpcinterface:x] ืกืขื™ืฃ ื™ื”ื™ื”
ื™ื•ืขื‘ืจ ื›ื˜ื™ืขื•ื ื™ ืžื™ืœืช ืžืคืชื— ืœืžืคืขืœ.

ื”ื ื” ื“ื•ื’ืžื” ืœืคื•ื ืงืฆื™ื™ืช ืžืคืขืœ, ืฉื ื•ืฆืจื” ื‘- __init__.py ืงื•ื‘ืฅ ืฉืœ Python
ื—ื‘ื™ืœื” ื”ื—ื‘ื™ืœื” ืฉืœื™.

ืž-my.package.rpcinterface ื™ื™ื‘ื•ื โ€‹โ€‹AnotherRPCInterface

def make_another_rpcinterface(ืกื•ืคืจvisord, **config):
retries = int(config.get('retries', 0))
another_rpc_interface = AnotherRPCInterface(ืžืคืงื—, ืžื ืกื” ืฉื•ื‘)
ื”ื—ื–ืจ another_rpc_interface

ื•ืงื˜ืข ื‘ืงื•ื‘ืฅ ื”ืชืฆื•ืจื” ื ื•ืขื“ ืœื”ื’ื“ื™ืจ ืื•ืชื•.

[rpcinterface:ืื—ืจ]
supervisor.rpcinterface_factory = my.package:make_another_rpcinterface
ื ื™ืกื™ื•ื ื•ืช ื—ื•ื–ืจื™ื = 1

[rpcinterface:x] ืกืขื™ืฃ ืขืจื›ื™ื
supervisor.rpcinterface_factory
pkg_resources ืฉื ืžื ื•ืงื“ "ื ืงื•ื“ืช ื›ื ื™ืกื”" ืœืคื•ื ืงืฆื™ื™ืช ื”ื™ืฆืจืŸ ืฉืœ ืžืžืฉืง ื”-RPC ืฉืœืš.

ื‘ึผึฐืจึดื™ืจึทืช ืžึถื—ื“ึธืœ: N /

ื“ืจื•ืฉ: ืœื.

ื”ืฆื™ื’: 3.0

[rpcinterface:x] ืกืขื™ืฃ ื“ื•ื’ืžื”
[rpcinterface:ืื—ืจ]
supervisor.rpcinterface_factory = my.package:make_another_rpcinterface
ื ื™ืกื™ื•ื ื•ืช ื—ื•ื–ืจื™ื = 1

ืžื™ืœื•ืŸ ืžื•ื ื—ื™ื
daemontools
A ืชื”ืœื™ืš ืœึดืฉืึฐืœื•ึนื˜ ืžืขืจื›ืช by DJ ื‘ืจื ืฉื˜ื™ื™ืŸ.

ื”ืฉื™ืงื”
A ืชื”ืœื™ืš ืœึดืฉืึฐืœื•ึนื˜ ืžืขืจื›ืช ืžึฐืฉืื•ึผืžึธืฉื by ืชืคื•ื— ืขืฅ ื›ืชื”ืœื™ืš 1 ืชื—ืช Mac OS X.

ืชืจื™ืฅ ืืช ื–ื” A ืชื”ืœื™ืš ืœึดืฉืึฐืœื•ึนื˜ ืžืขืจื›ืช.

ืกื•ืคืจืœื ืก
ื—ื‘ื™ืœื” ื”ืžืกืคืงืช ืžื™ืžื•ืฉื™ื ืฉื•ื ื™ื ืฉืœ ืžืื–ื™ื ื™ื ืœืื™ืจื•ืขื™ื ืฉืžืชื—ื‘ืจื™ื
ืžืคืงื— ืฉื™ื›ื•ืœ ืœืขื–ื•ืจ ืœื ื˜ืจ ืืช ื”ืฉื™ืžื•ืฉ ื‘ื–ื™ื›ืจื•ืŸ ื”ืชื”ืœื™ืš ื•ืžืฆื‘ ื”ืงืจื™ืกื”:
http://pypi.python.org/pypi/superlance.

ืื•ืžืกืง ืงื™ืฆื•ืจ ืฉืœ ื”ืžืฉืชืžืฉ ืžืกื›ื”: ืžื’ื“ื™ืจ ืืช ืžืกื›ืช ื™ืฆื™ืจืช ืžืฆื‘ ื”ืงื•ื‘ืฅ ืฉืœ ื”ืชื”ืœื™ืš ื”ื ื•ื›ื—ื™.
ืœึดืจึฐืื•ึนืช http://en.wikipedia.org/wiki/Umask.

ื”ืฉืชืžืฉ ื‘- echo_supervisord_conf ื‘ืื™ื ื˜ืจื ื˜ ื‘ืืžืฆืขื•ืช ืฉื™ืจื•ืชื™ onworks.net


ืฉืจืชื™ื ื•ืชื—ื ื•ืช ืขื‘ื•ื“ื” ื‘ื—ื™ื ื

ื”ื•ืจื“ ืืคืœื™ืงืฆื™ื•ืช Windows & Linux

  • 1
    Phaser
    Phaser
    Phaser ื”ื™ื ืคืชื™ื—ื” ืžื”ื™ืจื”, ื—ื™ื ืžื™ืช ื•ืžื”ื ื”
    ืžืกื’ืจืช ืžืฉื—ืง ืžืงื•ืจ HTML5 ืฉืžืฆื™ืขื”
    ืขื™ื‘ื•ื“ WebGL ื•-Canvas ืœืจื•ื—ื‘
    ื“ืคื“ืคื ื™ ืื™ื ื˜ืจื ื˜ ืฉื•ืœื—ื ื™ื™ื ื•ื ื™ื™ื“ื™ื. ืžืฉื—ืงื™ื
    ื™ื›ื•ืœ ืœื”ื™ื•ืช ืฉื•ืชืฃ...
    ื”ื•ืจื“ ืืช Phaser
  • 2
    ืžื ื•ืข VASSAL
    ืžื ื•ืข VASSAL
    VASSAL ื”ื•ื ืžื ื•ืข ืžืฉื—ืง ืœื™ืฆื™ืจื”
    ื’ืจืกืื•ืช ืืœืงื˜ืจื•ื ื™ื•ืช ืฉืœ ืœื•ื— ืžืกื•ืจืชื™
    ื•ืžืฉื—ืงื™ ืงืœืคื™ื. ื–ื” ืžืกืคืง ืชืžื™ื›ื” ืขื‘ื•ืจ
    ืขื™ื‘ื•ื“ ื•ืื™ื ื˜ืจืืงืฆื™ื” ืฉืœ ื—ืœืงื™ ืžืฉื—ืง,
    ื•...
    ื”ื•ืจื“ ืืช VASSAL Engine
  • 3
    OpenPDF - Fork of iText
    OpenPDF - Fork of iText
    OpenPDF ื”ื™ื ืกืคืจื™ื™ืช Java ืœื™ืฆื™ืจื”
    ื•ืขืจื™ื›ืช ืงื‘ืฆื™ PDF ืขื LGPL ื•
    ืจื™ืฉื™ื•ืŸ ืงื•ื“ ืคืชื•ื— MPL. OpenPDF ื”ื•ื ื”
    ื™ื•ืจืฉ ื”ืงื•ื“ ื”ืคืชื•ื— LGPL/MPL ืฉืœ iText,
    ...
    ื”ื•ืจื“ ืืช OpenPDF - Fork of iText
  • 4
    SAGA GIS
    SAGA GIS
    SAGA - ืžืขืจื›ืช ืœืื•ื˜ื•ืžื˜ื™ื•ืช
    ื ื™ืชื•ื—ื™ื ื’ื™ืื•ื’ืจืคื™ื™ื - ื”ื•ื ื’ื™ืื•ื’ืจืคื™
    ืชื•ื›ื ืช ืžืขืจื›ืช ืžื™ื“ืข (GIS) ืขื
    ื™ื›ื•ืœื•ืช ืขืฆื•ืžื•ืช ืœื’ื™ืื•ื“ื˜ื”
    ืขื™ื‘ื•ื“ ื•ืื ื”...
    ื”ื•ืจื“ ืืช SAGA GIS
  • 5
    ืืจื’ื– ื›ืœื™ื ืขื‘ื•ืจ Java/JTOpen
    ืืจื’ื– ื›ืœื™ื ืขื‘ื•ืจ Java/JTOpen
    ืืจื’ื– ื”ื›ืœื™ื ืฉืœ IBM ืขื‘ื•ืจ Java / JTOpen ื”ื•ื ื
    ืกืคืจื™ื™ืช ืžื—ืœืงื•ืช Java ื”ืชื•ืžื›ื•ืช ื‘
    ืชื›ื ื•ืช ืœืงื•ื—/ืฉืจืช ื•ืื™ื ื˜ืจื ื˜
    ื“ื’ืžื™ื ืœืžืขืจื›ืช ืขื OS/400,
    i5/OS, o...
    ื”ื•ืจื“ ืืช ืืจื’ื– ื”ื›ืœื™ื ืขื‘ื•ืจ Java/JTOpen
  • 6
    D3.js
    D3.js
    D3.js (ืื• D3 ืขื‘ื•ืจ ืžืกืžื›ื™ื ืžื‘ื•ืกืกื™ ื ืชื•ื ื™ื)
    ื”ื™ื ืกืคืจื™ื™ืช JavaScript ื”ืžืืคืฉืจืช ืœืš
    ืœื™ื™ืฆืจ ื ืชื•ื ื™ื ื“ื™ื ืžื™ื™ื ื•ืื™ื ื˜ืจืืงื˜ื™ื‘ื™ื™ื
    ื”ื“ืžื™ื•ืช ื‘ื“ืคื“ืคื ื™ ืื™ื ื˜ืจื ื˜. ืขื D3
    ืืชื”...
    ื”ื•ืจื“ ืืช D3.js
  • ืขื•ื“ ยป

ืคืงื•ื“ื•ืช ืœื™ื ื•ืงืก

Ad