๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐˜ฟ๐™–๐™ฉ๐™–๐™—๐™–๐™จ๐™š/๐˜ผ๐™’๐™Ž

pm2 flag๋กœ 5๋ถ„๋งˆ๋‹ค ์žฌ์‹คํ–‰์‹œํ‚ค๊ธฐ

by beomcoder 2024. 3. 6.
728x90
๋ฐ˜์‘ํ˜•
 

๋ฐฑ๊ทธ๋ผ์šด๋“œ๋กœ ํŒŒ์ด์ฌ ํŒŒ์ผ ์‹คํ–‰ ๊ด€๋ฆฌํ•˜๊ธฐ

ํ•ด๊ฒฐํ•œ์ง€๋Š” ์ข€ ๋์ง€๋งŒ ๊ทธ๋ž˜๋„ ์žŠ์–ด๋ฒ„๋ฆฌ์ง€ ์•Š๊ฒŒ ์ •๋ฆฌํ•˜๋ ค๊ณ  ํ•œ๋‹ค. AWS์—์„œ ํ”„๋กœ์„ธ์Šค๋ฅผ 1~2๊ฐœ๋ฅผ ๊ด€๋ฆฌํ• ๋•Œ๋Š” ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธฐ์ง€ ์•Š์•˜๋Š”๋ฐ 4~5๊ฐœ๋ฅผ ๊ด€๋ฆฌํ•˜๋ ค๊ณ  ํ•˜๋‹ˆ๊นŒ ๋ฌธ์ œ๊ฐ€ ๋งŽ์ด ์ƒ๊ฒผ๋‹ค. ์ฒ˜์Œ์—” nohup์œผ

beomcoder.tistory.com

 

์ด๋ ‡๊ฒŒ ๋งŒ๋“ค๊ณ  ๋‚˜์„œ ์ƒˆ๋กœ์šด ๋ฒ„์ „์— ๋Œ€ํ•œ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๊ณ  ์žˆ์—ˆ๋‹ค. ๊ธฐ์กด์˜ ๋ฐฉ์‹์€ 24์‹œ๊ฐ„๋™์•ˆ ๊ณ„์† ๋Œ์•„๊ฐ€๋ฉด์„œ ์ฝ”๋“œ์•ˆ์—์„œ ์Šค์ผ€์ค„๋ง์œผ๋กœ ์ผ์ •์‹œ๊ฐ„๋งˆ๋‹ค ์‹คํ–‰์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•์ด์—ˆ๋Š”๋ฐ, ์ด๊ฒŒ ์ข‹์ง€ ์•Š๋‹ค๊ณ  ํŒ๋‹จํ–ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ฝ”๋“œ๋ฅผ ๋นจ๋ฆฌ ๋๋‚ด๊ณ  ๋ฐฑ๊ทธ๋ผ์šด๋“œ๋‹จ์—์„œ ์ฝ”๋“œ๋ฅผ ์ฃผ๊ธฐ์ ์œผ๋กœ ๋‹ค์‹œ ์‹คํ–‰์‹œํ‚ค๋Š” ์ƒˆ๋กœ์šด ๋ฐฉ์‹์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์ „๋ถ€ ์ƒˆ๋กœ ์งœ๊ฒŒ ๋˜์—ˆ๋‹ค. ํ…Œ์ŠคํŠธ๋ฅผ ๋‹คํ•˜๊ณ  ์„œ๋ฒ„์— ์ ์šฉ์‹œ์ผœ๋ณด๋ ค๊ณ  pm2์— ์—…๋กœ๋“œ๋ฅผ ์‹œํ‚ค๊ฒŒ ๋˜์—ˆ๋‹ค.

 

๊ธฐ์กด์˜ ๋ฐฉ์‹์œผ๋กœ๋Š” ๋ฌธ์ œ๊ฐ€ ์—†์—ˆ๋Š”๋ฐ, ๊บผ์ ธ์•ผ๋  ํŒŒ์ผ์ด ๊บผ์ง€์ž๋งˆ์ž ๋‹ค์‹œ ์‹คํ–‰๋˜์—ˆ๋‹ค. ๊ทธ๋ ‡๊ฒŒ ๋˜๋‹ˆ 10๋ถ„๋งˆ๋‹ค ํ•œ๋ฒˆ์”ฉ๋งŒ ์‹คํ–‰์‹œํ‚ค๋ ค๊ณ  ํ–ˆ๋˜ ๊ณ„ํš์ด ํ‹€์–ด์กŒ๋‹ค. ๋ฐฉ๋ฒ•์„ ์ฐพ๋‹ค๋ณด๋‹ˆ ๊ธฐ์กด์— ์ผ๋˜ crontab, shell script๋„ ์•ˆ์“ฐ๊ฒŒ ๋˜๋Š” ๋ฐฉ๋ฒ•์„ ์ฐพ์•˜๋‹ค. ์—„์ฒญ ๊ฐ„๋‹จํ•˜๊ณ  ์ถ”๊ฐ€์ ์œผ๋กœ ๋ญ˜ ํ•ด์•ผํ•˜๋Š” ๊ฒƒ๋„ ์—†์–ด์„œ ๋งŒ์กฑํ–ˆ๋‹ค.

 

pm2 start main.py --cron "*/10 * * * *"

 

pm2์˜ flag์ธ cron์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๊ธฐ์กด์˜ crontab์˜ ๋ฐฉ๋ฒ•๊ณผ ๋˜‘๊ฐ™์ด ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค. -- cron ์„ ํ•˜๊ณ  ๋‚˜์„œ ๋ณธ์ธ์ด ๋ฐ˜๋ณตํ•ด์„œ ์‹คํ–‰์‹œํ‚ค๊ณ  ์‹ถ์€ ์‹œ๊ฐ„์„ ์ ์œผ๋ฉด ๋œ๋‹ค. */@๋กœ ์ ๊ฒŒ๋˜๋ฉด @๋ถ„์ด๋‚˜ @์‹œ๊ฐ„๋งˆ๋‹ค ๋ฐ˜๋ณตํ•ด์„œ ์‹คํ–‰ํ•œ๋‹ค๋Š” ๋œป์ด ๋œ๋‹ค. ๋‚˜๋Š” ์ฒ˜์Œ์— ์ด๋ ‡๊ฒŒ ์ ์—ˆ๋”๋‹ˆ ๊ณ„์† ์‹คํ–‰ํ•˜๊ณ , ์„ค์ •ํ•œ ์‹œ๊ฐ„๋Œ€์— ํ•œ๋ฒˆ๋” ์‹คํ–‰๋˜์—ˆ๋‹ค. flag๋ฅผ ์กฐ๊ธˆ๋” ์ฐพ์•„๋ณด๋‹ˆ autorestart์˜ ๊ธฐ๋Šฅ์ด ์žˆ์–ด ์ด๊ฑธ ๊ป๋”๋‹ˆ ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ๋ฐฉ์‹๋Œ€๋กœ ์ž˜ ์‹คํ–‰๋˜์—ˆ๋‹ค.

 

 

pm2 start main.py --name test_server --interpreter python3 --cron "*/10 * * * *" --no-autorestart

 

์ด๋ ‡๊ฒŒ ๋ช…๋ น์–ด ํ•œ์ค„๋กœ crontab, shell script๋ฅผ ์•ˆ์“ฐ๊ณ  ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์–ด ๊ธฐ๋ถ„์ด ์ข‹์•˜๋‹ค.

flag์˜ ์ •๋ณด๋Š” ์•„๋ž˜ ์‚ฌ์ดํŠธ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

PM2 - CLI | Reference | PM2 Documentation

Build Battle-Hardened Node.js Applications.

pm2.io

 

728x90
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€