리눅스 SysVinit, Systemd 차이

SysVinit, Systemd은 리눅스 시스템의 초기화 프로그램입니다. 둘의 차이를 이해하려면 초기화 프로세스가 무엇인지부터 알아야 합니다.

리눅스 초기화란?

운영체제 커널은 부팅 직후 초기화 프로세스를 시작합니다. 쉽게 말해 시스템에 필요한 프로세스가 자동으로 실행되는 단계입니다. 이때 초기화 시스템은 구성 파일을 읽고 구성 상태에 따라 서비스와 프로세스를 시작합니다. 한마디로 초기화 프로세스는 모든 프로세스의 시작점 입니다. 그래서 1번 PID가 부여됩니다.

 

sysvinit은 init이라는 명칭, systemd는 systemd라는 명칭의 프로세스입니다. 두 시스템의 차이는 초기화된 프로세스를 다른 방식으로 처리한다는 것입니다.

systemd sysvinit 차이

sysvinit이 더 오래된 시스템입니다. centos 기준으로는 6버전 이하에서 주로 사용됐으며 현재 대부분의 리눅스 배포판에서는 systemd가 사용됩니다.

 

sysvinit은 /etc/init.d의 셸 스크립트를 통해 시작 프로세스를 처리합니다. systemd는 /etc/systemd/system/.service 파일을 통해 프로세스를 처리합니다.

 

두 시스템은 동일한 기능을 실행할 때 사용하는 명령어가 다릅니다.

 

[systemd]

systemctl start sshd
systemctl status sshd
systemctl enable mysqld

[sysvinit]

service start sshd
service sshd status
chkconfig mysqld on

systemd sysvinit 구분하는 방법

리눅스가 어떤 초기화 시스템 기반인지 확인하려면 pstree 명령어를 실행하면 됩니다. pstree는 실행 중인 프로세스를 트리형태로 보여주는 명령어인데, 위에서 언급했듯 최상위 트리는 systemd 또는 init이기 때문에 맨 상단에 있는 프로세스가 무엇인지 확인하면 구분할 수 있습니다.

pstree
반응형

댓글

Designed by JB FACTORY