더북(TheBook)

3.7.2 systemd 이용하기

/sbin/init 파일에는 재미있는 점이 있다. file은 유닉스 프로그램으로, 어떤 파일에 대한 내부 정보를 제공한다. /sbin/init을 인자로 file 명령을 실행하면 init 파일이 실제 프로그램이 아니라 systemd라는 프로그램에 대한 심볼릭 링크(symbolic link)임을 알 수 있다. 심볼릭 링크에 관해서는 12장에서 자세히 설명하므로 일단 여기에서는 systemd를 알아보자.

$ file /sbin/init
/sbin/init: symbolic link to /lib/systemd/systemd

수년간 격렬한 논쟁이 있었지만, 이제 거의 모든 리눅스 배포판에서는 systemd라는 프로세스 관리자를 사용한다. 오랫동안 모든 유닉스 기반 OS에서는 부팅 과정에서 처음 실행하는 프로세스로 init을 사용해왔는데, 이를 systemd가 대체했다. 대체(drop-in replacement)는 실제로 수행하는 작업은 상당히 다르지만, init이 해왔던 일을 systemd가 대신한다는 의미다. 그래서 지금은 /sbin/init 파일이 그저 systemd 프로그램에 대한 심볼릭 링크로서 존재할 뿐이다.

/sbin/init 파일을 직간접적으로 사용거나 systemd 프로그램을 명시적으로 호출하는 일이 없어서 이 부분은 다소 이론적으로 들릴 수 있다. 이미 앞에서 본 것처럼 시스템 관리 작업을 하는 데 systemd를 사용하지 않고 systemctl을 사용하기 때문이다.

사실 systemd의 주요 임무은 개별 프로세스를 생성하고, 유지하고, 종료하는 방법을 제어하는 것이다. 앞에서 사용한 systemctl 명령은 이런 작업에 주로 사용하는 도구지만, systemd 개발자는 전통적인 프로세스 관리 기능을 상당히 확대해 다양한 시스템 서비스에도 적용하고 있다. 이제 systemd 체제에는 로그 관리자(journald), 네트워크 관리자(networkd), 장치 관리자(udevd) 등의 도구들이 포함되어 있다. 관리자 이름이 모두 d로 끝나는데, 여기서 d는 백그라운드에서 실행되는 시스템 프로세스인 데몬(daemon)을 나타낸다.

이 책에 나온 프로젝트를 수행하다 보면 systemd와 관련된 관리자 몇 개를 만나게 된다. 다음 장에서는 파일 시스템과 아카이브를 관리하고, 특히 백업하는 방법을 알아보자.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.