systemd(system daemon) ์„ ๊ด€๋ฆฌํ•˜๋Š” systemctl ๋ช…๋ น์–ด ์‚ฌ์šฉ๋ฒ•

systemd ๋ž€?

systemd(system daemon)์€ ์ „ํ†ต์ ์œผ๋กœ Unix ์‹œ์Šคํ…œ์ด ๋ถ€ํŒ…ํ›„์— ๊ฐ€์žฅ ๋จผ์ € ์ƒ์„ฑ๋œ ํ›„์— ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹คํ–‰ํ•˜๋Š” init ์—ญํ• ์„ ๋Œ€์ฒดํ•˜๋Š” ๋ฐ๋ชฌ์ž…๋‹ˆ๋‹ค. Red Hat ์— ๊ทผ๋ฌดํ•˜๋Š” Lennart Poettering ์ด ์ฃผ๋„์ ์œผ๋กœ ๊ฐœ๋ฐœ์„ ์‹œ์ž‘ํ–ˆ๊ณ  ์ง€๊ธˆ์€ RHEL/CentOS ์™€ Ubuntu ๋‚˜ Arch ๋“ฑ ๋Œ€๋ถ€๋ถ„์˜ ๋ฆฌ๋ˆ…์Šค ์‹œ์Šคํ…œ์— ๊ณต์‹์ ์œผ๋กœ ์ฑ„ํƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.


๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋งค์šฐ ๋ณต์žกํ•œ ์•„ํ‚คํ…์ฒ˜๋ฅผ ๊ฐ–๊ณ  ์žˆ์ง€๋งŒ ์ผ๋ฐ˜ ๋ฆฌ๋ˆ…์Šค ์‚ฌ์šฉ์ž ์ž…์žฅ์—์„œ๋Š” ์ตœ์ƒ๋‹จ์˜ systemd utillities ์ธ systemctl, journalctl ๋“ฑ ์œ ํ‹ธ๋ฆฌํ‹ฐ ์‚ฌ์šฉ๋ฒ•์„ ์œ„์ฃผ๋กœ ์ตํžˆ๋ฉด ๋˜๋ฉฐ ์ด ๋ฌธ์„œ์—์„œ๋Š” systemctl ์‚ฌ์šฉ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

์ถœ์ฒ˜: https://en.wikipedia.org/wiki/Systemd#/media/File:Systemd_components.svg



Target ๊ด€๋ฆฌ

linux systemctl ๋ช…๋ น์œผ๋กœ ๋ถ€ํŒ… ํƒ€๊ฒŸ(booting target) ์ง€์ •ํ•˜๊ธฐ ์ฐธ๊ณ 

service/chckconfig ๋ช…๋ น์–ด์™€ ๋น„๊ต

systemctl ๊ณผ service/chckconfig ๋ช…๋ น์–ด ๋น„๊ตํ‘œ ์ฐธ๊ณ 


์„œ๋น„์Šค ๊ด€๋ฆฌ

์„œ๋น„์Šค ์ƒํƒœ ํ™•์ธ

status ๋ช…๋ น์–ด ๋’ค์— ํ™•์ธํ•  ์„œ๋น„์Šค ๋ช…์„ ์ฃผ๊ณ  ์‹คํ–‰ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

systemctl status ์„œ๋น„์Šค๋ช…


๋‹ค์Œ์€ nginx ์„œ๋น„์Šค์˜ ์ƒํƒœ๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

systemctl status nginx

์„œ๋น„์Šค ๊ตฌ๋™

systemctl start mariadb


์„œ๋น„์Šค ์ž๋™ ์‹œ์ž‘

enable ๋กœ ์„ค์ •ํ•˜๋ฉด ๋ถ€ํŒ…์‹œ ์ž๋™ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค.

systemctl enable mariadb


์„œ๋น„์Šค ๋ชฉ๋ก ๋ณด๊ธฐ

list-units ๋ช…๋ น์–ด ์‚ฌ์šฉ

$ sudo systemctl list-units

์„ค์น˜๋œ ๋ชจ๋“  unit ํŒŒ์ผ์„ ๋ณด๋ ค๋ฉด list-unit-files  ์‚ฌ์šฉ

$ sudo systemctl list-unit-files


์„œ๋น„์Šค ๋งˆ์Šคํ‚น

๋™์ผํ•œ ์šฉ๋„๋กœ ์‚ฌ์šฉํ•˜๋Š” ์„œ๋น„์Šค๊ฐ€ ๋™์‹œ์— ์„ค์น˜๋˜์–ด ์žˆ์„ ๊ฒฝ์šฐ ์ œ๋Œ€๋กœ ๋™์ž‘ํ•˜์ง€ ์•Š๊ณ  ์ถฉ๋Œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ๋กœ ntpd ์™€ chronyd ๋Š” ๋™์ผํ•œ ์šฉ๋„์ด๋ฏ€๋กœ 2๊ฐœ๊ฐ€ ๋™์‹œ์— ์„ค์น˜๋˜์–ด ์žˆ์„ ๊ฒฝ์šฐ ๋ฌธ์ œ๊ฐ€ ๋˜๋ฏ€๋กœ ์ด๋Ÿด๋•Œ๋Š” service masking ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์„œ๋กœ ์ถฉ๋Œํ•˜๋Š” ์„œ๋น„์Šค๋ฅผ ์‹ค์ˆ˜๋กœ ์‹œ์ž‘ํ•˜์ง€ ์•Š๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.


์˜ˆ๋กœ ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ์‹ค์ˆ˜๋กœ ntpd ๋ฅผ ๊ตฌ๋™ํ•ด๋„ ntpd ๊ฐ€ ์‹œ์ž‘๋˜์ง€ ์•Š์Œ.


$ sudo systemctl mask ntpd

Created symlink from /etc/systemd/system/ntpd.service to /dev/null


์‹ค์ˆ˜๋กœ ntpd ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ ์•„๋ž˜์™€ ๊ฐ™์€ ๋ฉ”์‹œ์ง€๊ฐ€ ์ถœ๋ ฅ๋จ.

$ sudo systemctl start ntpd

Failed to start ntpd.service: Unit is masked.


๋งˆ์Šคํ‚น๋œ ์„œ๋น„์Šค๋ฅผ ํ•ด์ œํ•˜๋ ค๋ฉด systemctl unmask ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰

$ sudo systemctl unmask ntpd

Removed symlink /etc/systemd/system/ntpd.service



์กฐ๊ฑด์— ๋”ฐ๋ผ ์„œ๋น„์Šค ๋ณด๊ธฐ

enabled ๋œ ๋ชจ๋“  ์„œ๋น„์Šค

$ sudo systemctl list-units --state=enabled


๊ตฌ๋™์— ์‹คํŒจํ•œ ์„œ๋น„์Šค

$ sudo systemctl list-units --state=failed

๋ชจ๋“  active ๋ชฉ๋ก

$ sudo systemctl list-units --state=active

์ƒํƒœ๊ฐ€ inactive ์ธ  ๋ชฉ๋ก

$ sudo systemctl list-units --all --state=inactive


์„œ๋น„์Šค์ค‘์— ์ƒํƒœ๊ฐ€ running ์ธ ๋ชฉ๋ก

$ sudo systemctl list-units --type=service --state=running


ํŠน์ • ์„œ๋น„์Šค๊ฐ€ active ์ƒํƒœ์ธ์ง€ ์กฐํšŒ

์„œ๋น„์Šค๊ฐ€ ํ˜„์žฌ active ์ƒํƒœ์ธ์ง€ ์กฐํšŒํ•  ๊ฒฝ์šฐ is-active ๊ตฌ๋ฌธ ์‚ฌ์šฉ

$ sudo systemctl is-active nginx


failed

์„œ๋น„์Šค๊ฐ€ ๋ถ€ํŒ…๋•Œ ๊ตฌ๋™๋˜๋„๋ก ์„ค์ • ์—ฌ๋ถ€

์„œ๋น„์Šค๊ฐ€ ํ˜„์žฌ active ์ƒํƒœ์ธ์ง€ ์กฐํšŒํ•  ๊ฒฝ์šฐ is-eabled ๊ตฌ๋ฌธ ์‚ฌ์šฉ

$ sudo systemctl is-enabled nginx
disabled

journalctl

Linux journalctl ์‚ฌ์šฉ๋ฒ• ์„ ์ฐธ๊ณ ํ•˜์„ธ์š”.


์ฐธ๊ณ