Linux

[Linux] ๋ฆฌ๋ˆ…์Šค๋งˆ์Šคํ„ฐ 2๊ธ‰ 2์ฐจ ์ •๋ฆฌ (8)

The Engineer, Lucy 2025. 6. 11. 23:37

ํ”„๋กœ์„ธ์Šค ์œ ํ˜•

ํฌ์–ด๊ทธ๋ผ์šด๋“œ ํ”„๋กœ์„ธ์Šค์™€ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ํ”„๋กœ์„ธ์Šค

ํฌ์–ด๊ทธ๋ผ์šด๋“œ ํ”„๋กœ์„ธ์Šค ์‚ฌ์šฉ์ž์™€ ์ƒํ˜ธ์ž‘์šฉํ•˜๋Š” ํ”„๋กœ์„ธ์Šค
ํ„ฐ๋ฏธ๋„์— ์ง์ ‘ ์—ฐ๊ฒฐ๋˜์–ด ์ž…์ถœ๋ ฅ์„ ์ฃผ๊ณ  ๋ฐ›๋Š” ํ”„๋กœ์„ธ์Šค
๋ช…๋ น ์ž…๋ ฅ ํ›„ ์ˆ˜ํ–‰ ์ข…๋ฃŒ๊นŒ์ง€ ๊ธฐ๋‹ค๋ ค์•ผ ํ•˜๋Š” ํ”„๋กœ์„ธ์Šค
ํ™”๋ฉด์—์„œ ์‹คํ–‰๋˜๋Š” ๊ฒƒ์ด ๋ณด์ด๋Š” ํ”„๋กœ์„ธ์Šค
ex) ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ, ๋ช…๋ น์–ด ๋“ฑ
๋ฐฑ๊ทธ๋ผ์šด๋“œ ํ”„๋กœ์„ธ์Šค ์‚ฌ์šฉ์ž์™€ ์ง์ ‘์ ์ธ ๋Œ€ํ™”๋ฅผ ํ•˜์ง€ ์•Š๊ณ  ๋’ค์—์„œ ์‹คํ–‰๋˜๋Š” ํ”„๋กœ์„ธ์Šค
์‚ฌ์šฉ์ž์˜ ์ž…๋ ฅ์— ๊ด€๊ณ„์—†์ด ์‹คํ–‰๋˜๋Š” ํ”„๋กœ์„ธ์Šค
์‹คํ–‰์€ ๋˜์ง€๋งŒ ํ™”๋ฉด์— ๋‚˜ํƒ€๋‚˜์ง€ ์•Š๊ณ  ์‹คํ–‰๋˜๋Š” ํ”„๋กœ์„ธ

fork()

  • ์ƒˆ๋กœ์šด ํ”„๋กœ์„ธ์Šค๋ฅผ ๋งŒ๋“ค ๋•Œ ๊ธฐ์กด ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ณต์ œํ•˜๋Š” ๋ฐฉ์‹.
  • ์ƒˆ๋กœ์šด ํ”„๋กœ์„ธ์Šค๋ฅผ ์œ„ํ•œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹น.
  • ์ƒˆ๋กœ ์ƒ์„ฑ๋œ ํ”„๋กœ์„ธ์Šค๋Š” ์›๋ž˜์˜ ํ”„๋กœ์„ธ์Šค์™€ ๋˜‘๊ฐ™์€ ์ฝ”๋“œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Œ.
  • ์›๋ณธ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ถ€๋ชจ ํ”„๋กœ์„ธ์Šค๋ผ๊ณ  ๋ถ€๋ฅด๊ณ  ์ƒˆ๋กœ ๋ณต์ œ๋œ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ž์‹ ํ”„๋กœ์„ธ์Šค.

exec()

  • ํ˜ธ์ถœํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ƒˆ๋กœ์šด ํ”„๋กœ์„ธ์Šค๋กœ ๋ณ€๊ฒฝ๋˜๋Š” ๋ฐฉ์‹.
  • ์ƒˆ๋กœ์šด ํ”„๋กœ์„ธ์Šค๋ฅผ ์œ„ํ•œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹นํ•˜์ง€ ์•Š์Œ.
  • ํ˜ธ์ถœํ•œ ํ”„๋กœ์„ธ์Šค์˜ ๋ฉ”๋ชจ๋ฆฌ์— ์ƒˆ๋กœ์šด ํ”„๋กœ์„ธ์Šค์˜ ์ฝ”๋“œ๋ฅผ ๋ฎ์–ด์”Œ์›Œ ๋ฒ„๋ฆผ.
  • exec()๋ฅผ ํ˜ธ์ถœํ•œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์•„๋‹Œ exec()์— ์˜ํ•ด ํ˜ธ์ถœ๋œ ํ”„๋กœ์„ธ์Šค๋งŒ ๋ฉ”๋ชจ๋ฆฌ์— ๋‚จ๊ฒŒ ๋จ.

๋ฐ๋ชฌ

  • ๋ฆฌ๋ˆ…์Šค ์‹œ์Šคํ…œ์ด ๋ถ€ํŒ… ์‹œ ์ž๋™์œผ๋กœ ์‹คํ–‰๋˜๋Š” ๋ฐฑ๊ทธ๋ผ์šด๋“œ ํ”„๋กœ์„ธ์Šค.
  • ๋ฉ”๋ชจ๋ฆฌ์— ์ƒ์ฃผํ•˜๋ฉด์„œ ์‚ฌ์šฉ์ž์˜ ํŠน์ • ์š”์ฒญ์ด ์˜ค๋ฉด ์ฆ‰์‹œ ์‹คํ–‰๋˜๋Š” ๋Œ€๊ธฐ ์ค‘์ธ ์„œ๋ฒ„ ํ”„๋กœ์„ธ์Šค.
  • ์ฃผ๊ธฐ์ ์ด๊ณ  ์ง€์†์ ์ธ ์„œ๋น„์Šค ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์‹คํ–‰๋จ.
  • ์‚ฌ์šฉ์ž๋“ค์€ ์ด ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œโŒ.
  • ๋ฆฌ๋ˆ…์Šค์—์„œ ๋ฐ๋ชฌ์„ ์‹คํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•
    standalone ์„œ๋น„์Šค๊ฐ€ ์š”์ฒญ์ด ๋“ค์–ด์˜ค๊ธฐ ์ „์— ์„œ๋น„์Šค๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์ƒ์ฃผํ•˜๋Š” ๋‹จ๋… ์‹คํ–‰ ๋ฐฉ์‹
    ๋…๋ฆฝ์ ์œผ๋กœ ์ˆ˜ํ–‰๋˜๋ฉฐ ์„œ๋น„์Šค ์š”์ฒญ์— ์‘๋‹ตํ•˜๊ธฐ ์œ„ํ•ด ํ•ญ์ƒ ๋ฉ”๋ชจ๋ฆฌ์— ์ƒ์ฃผ
    ๋น ๋ฅธ ์‘๋‹ต์†๋„๋ฅผ ์š”ํ•˜๋Š” ๊ฒฝ์šฐ์— ์‚ฌ์šฉ
    ๋ฉ”๋ชจ๋ฆฌ์— ์ƒ์ฃผํ•˜๋ฏ€๋กœ ๋ฉ”๋ชจ๋ฆฌ ์ ์œ ๋กœ ์ธํ•œ ์„œ๋ฒ„ ๋ถ€ํ•˜๊ฐ€ ํผ
    inetd ๋ฐ๋ชฌ
    (์Šˆํผ ๋ฐ๋ชฌ)
    inetd๋Š” ๋‹ค๋ฅธ ๋ฐ๋ชฌ๋“ค์˜ ์ƒ์œ„์— ์กด์žฌํ•˜๋Š” standalone ๋ฐ๋ชฌ
    inetd๋Š” ์ž์ฒด์ ์œผ๋กœ๋Š” ํ•˜๋‚˜์˜ ๋…๋ฆฝ ๋ฐ๋ชฌ์ด์ง€๋งŒ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋‹ค๋ฅธ ์„œ๋น„์Šค๋“ค์„ ์ œ์–ดํ•˜๊ณ  ๊ด€๋ฆฌ
    ๋ณด์•ˆ์ƒ์˜ ์ด์œ ๋กœ ๋ฆฌ๋ˆ…์Šค ์ปค๋„ 2.4 ๋ฒ„์ „๋ถ€ํ„ฐ xinetd(extended inetd)๊ฐ€ inetd ์—ญํ• ์„ ์ˆ˜ํ–‰
    inted ํƒ€์ž… ๋ฐ๋ชฌ ineted ํƒ€์ž… ๋ฐ๋ชฌ๋“ค์€ ์ง์ ‘ ์„œ๋น„์Šค๋ฅผ ๊ฐ€๋™ํ•˜์ง€ ๋ชปํ•˜๊ณ  inetd ๋ฐ๋ชฌ์ด ํ™œ์„ฑํ™”๊ฐ€ ๋˜์–ด์•ผ๋งŒ ํ•ด๋‹น ์„œ๋น„์Šค ์ œ๊ณต
    Telnet, FTP, rlogin๊ณผ ๊ฐ™์€ ๋ฐ๋ชฌ๋“ค์ด inetd ํƒ€์ž… ๋ฐ๋ชฌ์— ํ•ด๋‹น
    inetd ์„œ๋น„์Šค ์š”์ฒญ์ด ์ข…๋ฃŒ๋˜๋ฉด inetd ํƒ€์ž… ๋ฐ๋ชฌ๋“ค๋„ ์ž๋™์œผ๋กœ ์ข…๋ฃŒ

์‹œ๊ทธ๋„

  • ์‹œ๊ทธ๋„์€ ํ”„๋กœ์„ธ์Šค์—๊ฒŒ ์ด๋ฒคํŠธ ๋ฐœ์ƒ์„ ์ „๋‹ฌํ•ด์ฃผ๋Š” ์†Œํ”„ํŠธ์›จ์–ด ์ธํ„ฐ๋ŸฝํŠธ.
  • ์‹œ๊ทธ๋„์ด ํ”„๋กœ์„ธ์Šค์—๊ฒŒ ์ „๋‹ฌ๋  ๋•Œ 4๊ฐ€์ง€ ์ƒํ™ฉ์ด ๋ฐœ์ƒ.
    SIG_IGN (SIG_PF)1 ์šด์˜์ฒด์ œ์— ์˜ํ•ด ์‹œ๊ทธ๋„์ด ๋ฌด์‹œ๋จ.
    SIG_ERR (SIG_PF)-1 ์šด์˜์ฒด์ œ๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ๊ฐ•์ œ๋กœ ์ข…๋ฃŒํ•จ.
    SIG_EFL (SIG_PF)0 ์ง€์ •ํ•œ ์‹œ๊ทธ๋„ ์ฒ˜๋ฆฌ ๋ฃจํ‹ด์„ ์‹คํ–‰ํ•จ.
    SIG_HOLD (SIG_PF)2 ์‹œ๊ทธ๋„์ด ๋ธ”๋กœํ‚น๋จ.
  • ์ง€์ •๋œ ์ด๋ฒคํŠธ์˜ ์‹œ๊ทธ๋„์ด ํ”„๋กœ์„ธ์Šค์— ์ „๋‹ฌ๋  ๋•Œ ๊ธฐ๋ณธ ๋™์ž‘
    ๋ฒˆํ˜ธ ์‹œ๊ทธ๋„ ๋ฐœ์ƒ ์กฐ๊ฑด ๊ธฐ๋ณธ ๋™์ž‘
    1 SIGHUP ํ„ฐ๋ฏธ๋„๊ณผ ์—ฐ๊ฒฐ์ด ๋Š์–ด์กŒ์„ ๋•Œ ์ข…๋ฃŒ ํ›„ ์žฌ์‹œ์ž‘
    2 SIGINT Ctrl+C ์ž…๋ ฅ ์‹œ ์ข…๋ฃŒ
    3 SIGQUIT Ctrl+\ ์ž…๋ ฅ ์‹œ ์ฝ”์–ด๋คํ”„
    6 SIGABRT abort(๋น„์ •์ƒ ์ข…๋ฃŒ) ํ•จ์ˆ˜์— ์˜ํ•ด ๋ฐœ์ƒ ์ฝ”์–ด๋คํ”„
    9 SIGKILL ํ”„๋กœ์„ธ์Šค ๊ฐ•์ œ ์ข…๋ฃŒ ์‹œ ์ข…๋ฃŒ
    15 SIGTERM Kill ์‹œ์Šคํ…œ ํ˜ธ์ถœ ์‹œ ์ข…๋ฃŒ
    19 SIGSTOP SIGCOUNT ์‹œ๊ทธ๋„์„ ๋ฐ›์„ ๋•Œ๊นŒ์ง€ ์ข…๋ฃŒ
    20 SIGTSTP Ctrl+z ์ž…๋ ฅ ์‹œ ํ”„๋กœ์„ธ์Šค ๋Œ€๊ธฐ๋กœ ์ „ํ™˜