Cloud Engineering/Linux ๐Ÿง

[Linux] systemd ๋ฐ๋ชฌ ํ”„๋กœ์„ธ์Šค ์ •๋ฆฌ

minjiwoo 2023. 1. 9. 18:08
728x90

systemd ๋ž€?

๊ธฐ์กด์— linux์—์„œ๋Š” init ํ”„๋กœ์„ธ์Šค๋กœ ์„œ๋น„์Šค์™€ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ด€๋ฆฌํ–ˆ๋‹ค. ํ˜„์žฌ์˜ ์ตœ์‹ ๋ฒ„์ „ ๋ฆฌ๋ˆ…์Šค์—์„œ๋Š” systemd ๋ฐ๋ชฌ์œผ๋กœ init ํ”„๋กœ์„ธ์Šค์˜ ์—ญํ• ์„ ๋Œ€์ฒดํ•˜๊ณ  ์žˆ๋‹ค. 

  • systemd ๋กœ ๋Œ€์ฒด๋œ ์ดํ›„๋กœ Run-Level ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค. Run-Level ๋Œ€์‹  Target Unit์„ ์‚ฌ์šฉํ•œ๋‹ค. 
  • systemd ๋Š” ๋ฆฌ๋ˆ…์Šค์— ๋„์ž…๋˜๊ณ  ์žˆ๋Š” PID1 ๋ฒˆ ํ”„๋กœ์„ธ์Šค์ด๋‹ค.
  • ์‹œ์Šคํ…œ ๊ด€๋ฆฌ, ๋กœ๊ทธ ๊ด€๋ฆฌ, ์„œ๋น„์Šค ๊ด€๋ฆฌ, ์ดˆ๊ธฐํ™” ์Šคํฌ๋ฆฝํŠธ ๊ด€๋ฆฌ ๋“ฑ์˜ ์‹œ์Šคํ…œ ๊ด€๋ฆฌ์™€ ์ „๋ฐ˜์ ์ธ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ์žˆ๋‹ค.
  • init ํ”„๋กœ์„ธ์Šค์—์„œ ์‚ฌ์šฉํ•˜๋˜ ์„œ๋น„์Šค๋“ค์€ ์Šคํฌ๋ฆฝํŠธ ํ˜•ํƒœ์˜€๋˜ ๋ฐ˜๋ฉด, systemd๋กœ ๋Œ€์ฒด๋˜๋ฉด์„œ ์ด๋Š” Service Unit์œผ๋กœ ์ œ๊ณต๋œ๋‹ค.

 

๋™์ž‘ ์ค‘์ธ systemd process๋ฅผ ํ™•์ธํ•˜๋Š” ๋ช…๋ น์–ด 

ps -ef 

 

systemd Unit

systemd Unit ํŒŒ์ผ์€ /etc/systemd/system,  /run/systemd/system /usr/lib/systemd/system ์ด ์„ธ ๊ณณ์˜ ๋””๋ ‰ํ† ๋ฆฌ์— ์ €์žฅ๋œ๋‹ค. 

  • /etc/systemd/system ์—๋Š” ์‹œ์Šคํ…œ ๊ด€๋ฆฌ์ž๊ฐ€ ์„ค์ •ํ•œ ์œ ๋‹› ํŒŒ์ผ๋“ค์ด ์ €์žฅ๋œ๋‹ค. 
  • /run/systemd/system ๋Š” ๋Ÿฐํƒ€์ž„ ์ƒํƒœ์ผ๋•Œ ์ž„์‹œ๋กœ ์œ ๋‹›ํŒŒ์ผ์„ ์ €์žฅํ•˜๋Š” ๋””๋ ‰ํ† ๋ฆฌ์ด๋‹ค. 
  • /usr/lib/systemd/system ๋Š” ํŠน์ • ์œ ๋‹›์ด ํฌํ•จ๋œ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜๋ฉด ์ €์žฅ๋˜๋Š” ๋””๋ ‰ํ† ๋ฆฌ์ด๋‹ค. 

systemd Unit ํŒŒ์ผ์˜ ๊ตฌ์กฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. 

[Unit] : Unit์— ๋Œ€ํ•œ ์ผ๋ฐ˜์ ์ธ ์ •๋ณด

[Unit์˜ ์œ ํ˜•] : Unit์˜ ์œ ํ˜•์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ €์žฅํ•œ๋‹ค. Service, Socket ๋“ฑ์ด ์žˆ๋‹ค. 

[Install] : Unit์— ๋Œ€ํ•œ ์„ค์น˜ ์ •๋ณด 

 

Systemd Unit ๋ชฉ๋ก ํ™•์ธํ•˜๊ธฐ 

systemctl๋Š” systemd Unit ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ช…๋ น์–ด์ด๋‹ค. 

systemd Unit ๋ชฉ๋ก ์ถœ๋ ฅํ•˜๊ธฐ
systemctl list-units

์ข…๋ฅ˜๋ฅผ ์ง€์ •ํ•˜์—ฌ ๋ชฉ๋ก ํ™•์ธ
systemd list-units —type=UNIT_TYPE

UNIT์ค‘์— service ์œ ๋‹›๋“ค๋งŒ ์ถœ๋ ฅํ•ด์„œ ํ™•์ธ
list-units —type service
systemd

๋ชจ๋“  systemd unit ๋ชฉ๋ก ํ™•์ธ
systemctl list-units —all

systemd unit ํ™œ์„ฑํ™” ์ƒํƒœ ํ™•์ธ (๋ถ€ํŒ…์‹œ ์ž๋™์œผ๋กœ ์‹คํ–‰ ์—ฌ๋ถ€ ํ™•์ธ) -> enabled / disabled ๋ฅผ ์˜๋ฏธํ•จ 
systemctl list-unit-files

 

 Systemd Unit์˜ ์ƒํƒœ ์ข…๋ฅ˜ 

  • enabled : ๋ถ€ํŒ…์‹œ ์ž๋™ ์‹คํ–‰
  • disabled : ๋ถ€ํŒ…์‹œ ์ž๋™์œผ๋กœ ์‹คํ–‰ํ•˜์ง€ ์•Š์Œ
  • static : ์‚ฌ์šฉ์ž์— ์˜ํ•ด ์‹คํ–‰๋˜์ง€ ์•Š๊ณ  ๋‹ค๋ฅธ systemd unit ์— ์˜ํ•ด ์‹คํ–‰๋จ
  • masked : ์ถฉ๋Œ์„ ๋ง‰๊ธฐ ์œ„ํ•ด ํ•ด๋‹น system unit์ด ์‹คํ–‰๋˜์ง€ ์•Š๋„๋ก ์ง€์ •

 

Systemd unit ์˜ ์ƒํƒœ ํ™•์ธ 

systemctl status SYSTEMD_UNIT
์˜ˆ์‹œ) cups.service ์„œ๋น„์Šค ์œ ๋‹›์˜ ์ƒํƒœ๋ฅผ ํ™•์ธ



systemctl status STSTEMD_UNIT -l
-l ์˜ต์…˜์„ ๋ถ™์ด๋ฉด ๊ด€๋ จ ๋กœ๊ทธ๋„ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋‹ค. 


systemctl list-dependencies SYSTEMD_UNIT
systemd unit์˜ ์˜์กด์„ฑ ํ™•์ธ (ํ•ด๋‹น systemd์— ๋Œ€ํ•ด์„œ ์šด์˜์ƒํƒœ๋ฅผ treeํ˜•ํƒœ๋กœ ํ™•์ธ)

 

Systemd Unit ์ƒํƒœ ์ œ์–ดํ•˜๊ธฐ 

systemd Unit ์‹œ์ž‘
systemctl start SYSTEMD_UNIT

systemd Unit ์ข…๋ฃŒ
systemctl stop SYSTEMD_UNIT

systemd Unit ์žฌ์‹œ์ž‘
systemctl restart SYSTEMD_UNIT

systemd Unit ์žฌ๋กœ๋“œ
systemctl reload SYSTEMD_UNIT

Systemd Unit ์ƒํƒœ ํ™•์ธ
systemctl status SYSTEMD_UNIT

 

Systemd Unit ํ™œ์„ฑํ™” (๋ถ€ํŒ…์‹œ ์ž๋™์‹คํ–‰) ์„ค์ • ๋ช…๋ น์–ด 

systemd unit ๋ถ€ํŒ…์‹œ ์ž๋™ ์‹คํ–‰
systemctl enable SYSTEMD_UNIT

systemd unit ๋ถ€ํŒ…์‹œ ์ž๋™ ์‹คํ–‰ ํ•ด์ œ
systemctl disable SYSTEMD_UNIT

System Unit Masking ๋ช…๋ น์–ด 

mask ๋ฅผ ์ด์šฉํ•˜์—ฌ systemd ์œ ๋‹›์ด ์‹คํ–‰๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค. systemd์—์„œ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ ์‹คํ–‰ํ•˜์ง€ ์•Š๋”๋ผ๋„ ์ž๋™์œผ๋กœ ์‹คํ–‰๋˜๋Š” ์˜์กด์„ฑ์„ ๊ฐ€์ง„ ์œ ๋‹›๋“ค์ด ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ์œ ๋‹›๋“ค์ด ์ถฉ๋Œํ•˜๊ฒŒ ๋˜๋ฉด ์‹œ์Šคํ…œ์— ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธธ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ masking ์„ ์ด์šฉํ•˜์—ฌ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค. 

systemd unit ๋งˆ์Šคํฌ (์‹คํ–‰ ์ œํ•œ)
systemctl mask SYSTEMD_UNIT


mask์ฒ˜๋ฆฌ๋ฅผ ํ•œ ํ›„ ์ƒํƒœ๋ฅผ ํ™•์ธํ–ˆ์„ ๋•Œ masked ์ฒ˜๋ฆฌ๊ฐ€ ๋˜์—ˆ์Œ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. 

systemd unit ๋งˆ์Šคํฌ ํ•ด์ œ (์‹คํ–‰ ์ œํ•œ)
systemctl unmask SYSTEMD_UNIT

728x90