๋ฐ๋ ๋ฒจ์ด๋ ๊ทธ์ ์ด๋ค ๋ชจ๋๋ก ์ปดํจํฐ๋ฅผ ์์ํ ๊น?์ ๊ดํ ๋ด์ฉ์ด๋ผ๊ณ ๋ณด๋ฉด๋๋ค. ์๋ฅผ ๋ค์ด init ํ๋ก์ธ์ค๋ฅผ ์ฌ์ฉํ ๋์๋ /etc/inittab๋ผ๋ ์คํฌ๋ฆฝํธ ํ์ผ์ ์ฝ์ ํ ์ค์ ๋ ๋ฐ๋ ๋ฒจ์ ๋ํ ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ๋ค.
- ๋ฌด์จ ๋ฐ๋ ๋ฒจ๋ค์ด ์๋์ง ํ์ธํด๋ณด์
/lib/systemd/system ๋๋ ํ ๋ฆฌ๋ก ์ด๋ํ ํ "runlevel?.target"ํ์์ผ๋ก ๋์ด ์๋ ํ์ผ๋ค์ ์ ๋ณด๋ฅผ ์ถ๋ ฅํด๋ณด์.
์ ๊ทธ๋ฆผ์ฒ๋ผ runlevel0๋ถํฐ runlevel6๊น์ง ์ถ๋ ฅ๋ ๊ฒ์ ๋ณผ ์ ์๋ค.
runlevel?.target ํ์ผ๋ค์ ๋ชจ๋ ๋งํฌํ์ผ๋ก ๋ค๋ฅธ ํ๊นํ์ผ์ ์ฐ๊ฒฐ๋์ด์๋ค.
์ฐธ๊ณ ๋ก ๋๋ init์ด ์๋๋ผ systemd๋ฅผ ์ฌ์ฉํ๋ ํ๊ฒฝ์์๋ runlevel์ด๋ผ๋ ์ฉ์ด๊ฐ ๊ณ์ํด์ ์ฐ์ด๋ ๊ฒ์ ํ์ธํ ์ ์์๋ค.
๋ฐ๋ ๋ฒจ๊ณผ target์ ํ๋ก ์ ๋ฆฌํ๋ฉด ์๋์ ๊ฐ๋ค.
๋ฐ๋ ๋ฒจ | target | ์๋ฏธ |
1 | rescue.target | ํ ์คํธ ๊ธฐ๋ฐ์ ๋จ์ผ ์ฌ์ฉ์ ๋ชจ๋(single user mode) |
3 | multi-user.target | ํ ์คํธ ๊ธฐ๋ฐ์ ๋ค์ค ์ฌ์ฉ์ ๋ชจ๋ |
0 | poweroff.target | ์์คํ ์ค๋จ(Halt) |
6 | reboot.target | ์์คํ ๋ฆฌ๋ถํ |
2 | multi-user.target | ์ฌ์ฉ๋์ง ์์(์ฌ์ฉ์๊ฐ ์ง์ ๊ฐ๋ฅ) |
4 | multi-user.target | ์ฌ์ฉ๋์ง ์์(์ฌ์ฉ์๊ฐ ์ง์ ๊ฐ๋ฅ) |
5 | graphical.target | X ์๋ ๊ธฐ๋ฐ์ ๋ค์ค ์ฌ์ฉ์ ๋ชจ๋(๋ก๊ทธ์ธ๋ X ์๋์์ ์ด๋ค์ง) |
- ๋ด ์ปดํจํฐ์ ํ์ฌ ๋ฐ๋ ๋ฒจ(ํ๊ฒ) ํ์ธ
$ systemctl get-default
multi-user.target
์ ์์์๋ multi-user.target์ ์ฌ์ฉํ๊ณ ์๋ค๊ณ ๋์จ๋ค
systemd์์๋ ๋ฐ๋ ๋ฒจ์๋ค๊ฐ 'target'์ด๋ผ๋ ์ฉ์ด๋ฅผ ์ฌ์ฉํ๋ค
X์๋์ฐ๋ฅผ ๊ธฐ๋ณธ ์ค์ ์ผ๋ก ์ฌ์ฉํ๋ ๋ด ์นผ๋ฆฌ ๋ฆฌ๋ ์ค์์ ํ์ธํด๋ณด๋ graphical.target์ด ์ถ๋ ฅ๋์๋ค.
์๊น ์์์ ์ด๋ค ๋ฐ๋ ๋ฒจ ํ๊น๋ค์ด ์๋์ง ์ดํด๋ณด๊ธฐ ์ํด /lib/systemd/system ๋๋ ํ ๋ฆฌ์ ๋ค๋ ธ์๋ค.
๊ทธ๋ฐ๋ฐ ์ฌ๊ธฐ์๋ default.target์ด๋ผ๊ณ ๋ถํ ๋ ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ธํ ๋๋ ๋ฐ๋ ๋ฒจ์ด ์ง์ ๋์ด์๋ค.
์ด์ฒ๋ผ systemctl get-default ๋์ ์ด๋ ๊ฒ default.target์ด ๋ฌด์์ธ์ง ํ์ธํด๋๋๋ค.
- ํ์ฑํ๋ ํ๊ฒ ์ ๋ณด ์ถ๋ ฅ. (๋ชจ๋ ํ๊ฒ ์ถ๋ ฅํ๋ ค๋ฉด --all ์ถ๊ฐ)
$ systemctl list-units --type target
UNIT LOAD ACTIVE SUB DESCRIPTION
basic.target loaded active active Basic System
cryptsetup.target loaded active active Encrypted Volumes
getty.target loaded active active Login Prompts
local-fs-pre.target loaded active active Local File Systems (Pre)
local-fs.target loaded active active Local File Systems
multi-user.target loaded active active Multi-User System
network-online.target loaded active active Network is Online
network.target loaded active active Network
paths.target loaded active active Paths
remote-fs.target loaded active active Remote File Systems
slices.target loaded active active Slices
sockets.target loaded active active Sockets
sound.target loaded active active Sound Card
swap.target loaded active active Swap
sysinit.target loaded active active System Initialization
timers.target loaded active active Timers
LOAD = Reflects whether the unit definition was properly loaded.
ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
SUB = The low-level unit activation state, values depend on unit type
- ๋ํดํธ ํ๊ฒ ๋ณ๊ฒฝ
ํํธ ์์์ ๋ณธ /lib/systemd/system/default.target์ ๋งํฌํ์ผ์ด์๋ค. ์ด ํ์ผ์ผ ๋ค๋ฅธ ํ๊น์ ์ฐ๊ฒฐํ๋ฉด default.target์ด ๋ฐ๋๊ฒ ๋๋ค. ์ฆ ๋ถํ ํ ๋ ์คํ๋๋ ๋ฐ๋ ๋ฒจ์ด ๋ณ๊ฒฝ๋๋ ๊ฒ์ด๋ค. ๋ช ๋ น์ด๋ ์๋์ ๊ฐ๋ค.
$ ln -sf /lib/systemd/system/multi-user.target /lib/systemd/system/default.target
์๋๋ฉด ์๋์ฒ๋ผ ๊ทธ๋ฅ ๊ฐ๋จํ๊ฒ ๋ฐ๊ฟ๋ ๋๋ค.
$ sudo systemctl set-default ํ๊ฒ์ด๋ฆ
- init ๋ช ๋ น์ด
$ init ๋ฐ๋ ๋ฒจ
์๋ฅผ ๋ค์ด init 0 ์ด๋ฐ ์์ผ๋ก ํ๋ฉด ์ปดํจํฐ๊ฐ ์ฆ์ ์ข ๋ฃ๋๋ค.
์ฃผ๋ก init 0 (์์คํ ์ข ๋ฃ), init 6(์ฌ๋ถํ )์ด ๋ง์ด ์ฌ์ฉ๋๋ค.