Study: ComputerScience(CS)/CS: Linux

[Linux] Ubuntu ํ”„๋กœ์„ธ์Šค ๋ฐฑ๊ทธ๋ผ์šด๋“œ(๋ฐ๋ชฌ) ์‹คํ–‰: nohup๊ณผ &์— ๋Œ€ํ•ด์„œ

DrawingProcess 2024. 7. 25. 15:28
๋ฐ˜์‘ํ˜•
๐Ÿ’ก ๋ณธ ๋ฌธ์„œ๋Š” '[Linux] Ubuntu ํ”„๋กœ์„ธ์Šค  ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์‹คํ–‰: nohup๊ณผ &์— ๋Œ€ํ•ด์„œ'์— ๋Œ€ํ•ด ์ •๋ฆฌํ•ด๋†“์€ ๊ธ€์ž…๋‹ˆ๋‹ค.
ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” &์™€ nuhup์— ๋Œ€ํ•ด ์ •๋ฆฌํ•˜์˜€์œผ๋‹ˆ ์ฐธ๊ณ ํ•˜์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

1. nohup๊ณผ &(๋ฐฑ๊ทธ๋ผ์šด๋“œ) ์ฐจ์ด?

nohup์— ๋Œ€ํ•ด์„œ

nohup์€ no hang up์˜ ์•ฝ์ž๋กœ, ํ˜„์žฌ ์‚ฌ์šฉ์ž ์„ธ์…˜์ด ์•„๋‹Œ ์šด์˜์ฒด์ œ๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๋ฐฑ๊ทธ๋ผ์šด๋“œ ๊ณต๊ฐ„์—์„œ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž์˜ ์„ธ์…˜์ด ์ข…๋ฃŒ๋˜์–ด๋„ ์ง€๊ธˆ ์‹คํ–‰์‹œํ‚จ ํ”„๋กœ์„ธ์Šค๋Š” ์ข…๋ฃŒ๋˜์ง€ ์•Š์œผ๋ฉฐ, ์ข…๋ฃŒํ•˜๊ธฐ ์œ„ํ•ด์„œ ํ”„๋กœ์„ธ์Šค์˜ PID๋ฅผ ์ฐพ์•„์„œ Kill ํ•ด์ค˜์•ผํ•ฉ๋‹ˆ๋‹ค.

&์— ๋Œ€ํ•ด์„œ

๋กœ๊ทธ์ธํ•œ ์„ธ์…˜์—์„œ ๊ณ„์† ์ž…๋ ฅ์„ ํ•˜๊ธฐ ์œ„ํ•ด ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ฐฑ๊ทธ๋ผ์šด๋“œ๋กœ ์‹คํ–‰์‹œํ‚ฌ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. &๋กœ ์‹คํ–‰๋˜๋Š” ํ”„๋กœ์„ธ์Šค๋Š” ์‚ฌ์šฉ์ž ์„ธ์…˜์ด ๋กœ๊ทธ์•„์›ƒ๋˜๋Š” ์‹œ์ ์— ๊ฐ™์ด ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค.

nohup๊ณผ &(๋ฐฑ๊ทธ๋ผ์šด๋“œ) ์ฐจ์ด?

nohup์€ ํ”„๋กœ๊ทธ๋žจ์„ ๋ฐ๋ชฌ์˜ ํ˜•ํƒœ๋กœ ์‹คํ–‰์‹œํ‚ค๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ์•ž์„œ ์„ค๋ช…๋“œ๋ฆฐ๋ฐ๋กœ ๋กœ๊ทธ์•„์›ƒ์œผ๋กœ ์„ธ์…˜์ด ์ข…๋ฃŒ๋˜๋”๋ผ๋„ ํ”„๋กœ๊ทธ๋žจ์ด ์ข…๋ฃŒ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

 ๊ทธ๋Ÿฌ๋‚˜ &(๋ฐฑ๊ทธ๋ผ์šด๋“œ) ์‹คํ–‰์€ ๋‹จ์ง€ ํ”„๋กœ๊ทธ๋žจ์„ ์‚ฌ์šฉ์ž ๋ˆˆ์— ๋ณด์ด์ง€ ์•Š๋Š” ๋ฐฑ๊ทธ๋ผ์šด๋“œ ํ˜•ํƒœ๋กœ ๋Œ๋ฆฌ๊ณ  ์žˆ๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋กœ๊ทธ์•„์›ƒ์œผ๋กœ ์„ธ์…˜๊ณผ ์—ฐ๊ฒฐ์ด ๋Š์–ด์ง€๋ฉด ์‹คํ–‰๋˜๊ณ  ์žˆ๋˜ ํ”„๋กœ๊ทธ๋žจ๋„ ํ•จ๊ป˜ ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์–ธ์  ๊ฐ€๋ถ€ํ„ฐ &(๋ฐฑ๊ทธ๋ผ์šด๋“œ)๋กœ ๋Œ๋ฆฌ๋”๋ผ๋„ nohup๊ณผ ๋™์ผํ•˜๊ฒŒ ์„ธ์…˜์ด ๋Š์–ด์ ธ๋„ ํ”„๋กœ๊ทธ๋žจ์ด ์ข…๋ฃŒ๋˜์ง€ ์•Š๋Š” ์˜ต์…˜์ด ๋””ํดํŠธ๋กœ ์ ์šฉ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์—, ๋‘ ๋ช…๋ น์–ด์˜ ๋™์ž‘์ด ์œ ์‚ฌํ•˜๊ฒŒ ๋ณด์ด๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

2. ํ”„๋กœ์„ธ์Šค ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์‹คํ–‰ํ•˜๊ธฐ

nohup์™€ &์˜ ๊ฒฐํ•ฉ

์‚ฌ์šฉ์ž์˜ ์„ธ์…˜์ด ์ข…๋ฃŒ๋˜์–ด๋„ ์œ ์ง€๋˜๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ฐฑ๊ทธ๋ผ์šด๋“œ๋กœ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

$ nohup ./download.sh &

nohup ์‹คํ–‰์‹œ ๋œจ๋Š” ๊ฒฝ๊ณ ๋ฌธ

Ubuntu์—์„œ nohup๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹คํ–‰ํ–ˆ๋Š”๋ฐ, ์‹คํ–‰์‹œ์— nohup: ignoring input and appending output to 'nohup.out' ๋ผ๋Š” ๊ฒฝ๊ณ  ๋ฉ”์„ธ์ง€๊ฐ€ ๋‚˜์™€์„œ ์ฐพ์•„๋ดค๋Š”๋ฐ ๋‹คํ–‰ํžˆ ๋ฌธ์ œ๋˜๋Š” ์‚ฌํ•ญ์€ ์•„๋‹ˆ๊ณ  ์ž…๋ ฅ์„ ๋‹ซ๊ณ  ์ถœ๋ ฅ์„ nohup.out ์— ์“ด๋‹ค๋Š” ๋ฉ”์„ธ์ง€์ด๋‹ˆ ์‹ ๊ฒฝ์“ฐ์ง€ ์•Š์•„๋„ ๋ฉ๋‹ˆ๋‹ค.

nohup์˜ ํ‘œ์ค€ ์ถœ๋ ฅ์„ ๋‹ค๋ฅธ ํŒŒ์ผ์— ์“ฐ๊ณ  ์‹ถ๋‹ค๋ฉด?

$ nohup ./download.sh & > nohup_script.out

ํ”„๋กœ์„ธ์Šค ์ข…๋ฃŒ ๋ฐฉ๋ฒ•

์ด์ œ ๋ฐฑ๊ทธ๋ผ์šด๋“œ๋กœ ์„ธ์…˜ ์ข…๋ฃŒ์‹œ์—๋„ ํ”„๋กœ๊ทธ๋žจ ์ข…๋ฃŒ ์—†์ด ์‹คํ–‰์‹œํ‚ค๋Š” ๋ฒ•์€ ์ž˜ ์•Œ๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ ์ด์ œ ๊ทธ๋งŒ ์‹คํ–‰์‹œํ‚ค๊ณ  ์‹ถ์„ ๋•Œ๋Š” ์–ด๋–ป๊ฒŒ ํ• ๊นŒ์š”?

ps ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด์„œ ํ”„๋กœ์„ธ์Šค ์•„์ด๋””๋ฅผ ์•Œ์•„๋‚ด๊ณ , kill ๋ช…๋ น์–ด๋กœ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ข…๋ฃŒ์‹œํ‚ค๋ฉด ๋ฉ๋‹ˆ๋‹ค

 ### ํ”„๋กœ์„ธ์Šค ์•„์ด๋”” ์•Œ์•„๋‚ด๊ธฐ
$ ps -ef | grep my_shellscript.sh
### ํ”„๋กœ์„ธ์Šค ์ข…๋ฃŒ
$ kill -9 <ํ”„๋กœ์„ธ์Šค ์•„์ด๋””>

์ฐธ๊ณ 

๋ฐ˜์‘ํ˜•