Supervisor: "environment" ๊ตฌ์„ฑ ์˜ต์…˜์€ ์ธ์šฉ๋œ ๊ฒฝ์šฐ์—๋„ "%" ๋ฌธ์ž๋ฅผ ํ—ˆ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2013๋…„ 09์›” 27์ผ  ยท  4์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: Supervisor/supervisor

๊ตฌ์„ฑ ํŒŒ์ผ์—์„œ environment= ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•  ๋•Œ % ๊ธฐํ˜ธ๋Š” Error: Format string 'KEY="%"' for 'environment' is badly formatted ์˜ค๋ฅ˜๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ

์ข‹์•„: environment=SECRET_KEY="*wi4h$kqxp84f3w6uh8w@l$0(+@x$3cr&)z^lmg+pqw^6wkyi"

ํŒŒ์†: environment=SECRET_KEY="*wi4h$kqxp84f3w6uh8w@l$0(+@x$3cr&)z^lmg+pqw^6wky%i"

ํŒŒ์†: environment=FOO="%"

ํŒŒ์†: environment=FOO="\%"

environment

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

๊ณ ์žฅ: environment=SECRET_KEY="*wi4h$kqxp84f3w6uh8w@l$0(+@x$3cr&)z^lmg+pqw^6wky%i"

% ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ %% % ๋ฅผ ํฌํ•จํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Supervisor๋Š” ๊ตฌ์„ฑ ํŒŒ์ผ์„ ๊ตฌ๋ฌธ ๋ถ„์„ํ•  ๋•Œ Python ๋ฌธ์ž์—ด ๋ณด๊ฐ„์„ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

$ python
>>> "*wi4h$kqxp84f3w6uh8w@l$0(+@x$3cr&)z^lmg+pqw^6wky%i" % {}
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: %d format: a number is required, not dict

%% :

>>> "*wi4h$kqxp84f3w6uh8w@l$0(+@x$3cr&)z^lmg+pqw^6wky%%i" % {}
'*wi4h$kqxp84f3w6uh8w@l$0(+@x$3cr&)z^lmg+pqw^6wky%i'

๋ชจ๋“  4 ๋Œ“๊ธ€

๊ณ ์žฅ: environment=SECRET_KEY="*wi4h$kqxp84f3w6uh8w@l$0(+@x$3cr&)z^lmg+pqw^6wky%i"

% ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ %% % ๋ฅผ ํฌํ•จํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Supervisor๋Š” ๊ตฌ์„ฑ ํŒŒ์ผ์„ ๊ตฌ๋ฌธ ๋ถ„์„ํ•  ๋•Œ Python ๋ฌธ์ž์—ด ๋ณด๊ฐ„์„ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

$ python
>>> "*wi4h$kqxp84f3w6uh8w@l$0(+@x$3cr&)z^lmg+pqw^6wky%i" % {}
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: %d format: a number is required, not dict

%% :

>>> "*wi4h$kqxp84f3w6uh8w@l$0(+@x$3cr&)z^lmg+pqw^6wky%%i" % {}
'*wi4h$kqxp84f3w6uh8w@l$0(+@x$3cr&)z^lmg+pqw^6wky%i'

์•ˆ๋…•ํ•˜์„ธ์š”,

[supervisord] ๋ธ”๋ก ๋‚ด environment= ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ๊ตฌ์„ฑ๊ณผ ์œ ์‚ฌํ•œ ๋ฌธ์ œ์— ์ง๋ฉดํ–ˆ์Šต๋‹ˆ๋‹ค.

% ๊ธฐํ˜ธ๊ฐ€ ์žˆ๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ œ์•ˆ๋œ ์†”๋ฃจ์…˜(2๊ฐœ์˜ % ๊ธฐํ˜ธ ์‚ฌ์šฉ)์„ ์‹œ๋„ํ–ˆ์ง€๋งŒ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์—†์—ˆ์Šต๋‹ˆ๋‹ค.

์‹œ๋„ํ•  ์ƒ˜ํ”Œ ๋ฌธ์ž์—ด: x1it3km%2BTVmkRsQ
์ด ๋ฌธ์ž์—ด์— ๋Œ€ํ•ด ๋‹ค์Œ ์˜ค๋ฅ˜ ๋ฐœ์ƒ

์˜ค๋ฅ˜: 'supervisord.environment'์— ๋Œ€ํ•œ ํ˜•์‹ ๋ฌธ์ž์—ด 'SECRET="x1it3km%2BTVmkRsQ"'์˜ ํ˜•์‹์ด ์ž˜๋ชป๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ง€์›๋˜์ง€ ์•Š๋Š” ํ˜•์‹ ๋ฌธ์ž 'B'

๋‚˜๋Š” ์ด๊ฒƒ์ด % ๊ธฐํ˜ธ ๋‹ค์Œ์— ์˜ค๋Š” ์ˆซ์ž์™€ ๊ด€๋ จ์ด ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€๋งŒ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์–ด๋–ค ์•„์ด๋””์–ด?

@chinmaybhoir ๊ทธ๊ฒƒ์€ ์‚ฌ์‹ค์ž…๋‹ˆ๋‹ค ... % 2๋ฅผ ํŠน๋ณ„ํ•œ caracter ๋˜๋Š” ์ด์™€ ์œ ์‚ฌํ•œ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผํ•ฉ๋‹ˆ๋‹ค .... ์ œ ๊ฒฝ์šฐ์—๋Š” Django์— ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ํ‚ค์˜ ๋ชจ๋“  %๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ์ž˜ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ฐ๋…์ž๊ฐ€ ๋ฌธ์ž์—ด์—์„œ % s๋ฅผ ์ž๋™์œผ๋กœ ์ด์Šค์ผ€์ดํ”„ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ๋†€๋ž์Šต๋‹ˆ๋‹ค(์˜ˆ: %(ENV_SECRET_KEY) ํ˜„์žฌ x1it3km%2BTVmkRsQ ํ™•์žฅ๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์œ ํšจํ•˜์ง€ ์•Š์ง€๋งŒ ํ™•์žฅํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. x1it3km%%2BTVmkRsQ ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๊ฐ๋…์ž๋ฅผ ๊ธฐ์˜๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด Django ๋น„๋ฐ€ ํ‚ค๋ฅผ ๋ณ€๊ฒฝํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰