반응형

 

systemd 프로세스 

- 최근 Linux 배포판의 초기화 데몬

- 커널이 실행시키는 첫번째 사용자 프로세스

- 모든 사용자 프로세스의 최상위 조상 프로세스 (PID가 1)

 

- 나머지 부팅 과정(=시스템 초기화 작업)을 처리함

- 사용자 환경 준비, 파일 시스템 마운트, 서비스 프로그램 실행 등

- 서비스들의 병렬 시작(CPU가 멀티코어인 경우), 온디맨드 활성화 (필요할 때 필요한 서비스만 활성화), 서비스 간 의존성 해결

 

- 초기화 작업을 처리한 이후에도 시스템 운영을 관리하고 셧다운까지 처리한다.

- 시스템 상태 모니터링, 데몬 관리(httpd 등등)

- 사용자 로그아웃 처리와 로그인 서비스 제공

 

 

 

사용자 프로세스 <-> 커널 프로세스

사용자 프로세스의 반대개념은 커널 프로세스

 

 

이전 초기화 데몬: upstart init 데몬

 

 


 

 

# 유닛 

systemd가 관리하는 시스템 자원이나 서비스와 같은 시스템 구성요소

 

 

유닛 종류 - service, target, device, mount, path, socket, snapshot 

 

유닛 파일이 존재하는 디렉터리

/usr/lib/systemd/system/  소프트웨어 패키지 설치시 함께 설치된 유닛 파일

/run/systemd/system/   런타임 시 만들어진 유닛 파일

/etc/systemd/system/   systemctl enable을 이용해 만들어진 유닛 파일, 우선 순위가 가장 높은 디렉터리

 

systemd 데몬 기본 설정 파일: /etc/system/system.conf

 

 

 


 

# 기본 타깃

 

기본 타깃(부팅 모드, 런레벨)에 따라 부팅 모드가 정해진다

부팅시에 어떤 모드로 부팅할 것인지 설정

 

graphical.target  / multi-user.target ...

 

런레벨 타깃 유닛 설명
0 poweroff.target 시스템 종료하고 전원 끔
1 rescue.target 단일 사용자 모드(root)로 복구 셸
2~4 multi-user.target 그래픽 없는 다중 사용자 시스템
5 graphical.target 그래픽 다중 사용자 시스템 
6 reboot.target 시스템 종료하고 리부팅

 

기본타깃 확인, 변경 명령어

확인: systemctl get-default

변경: systemctl set-default <name.target>

 

 

 

현재의 target을 다른 타깃 유닛으로 바꾸는 명령어 : systemctl isolate <name.target>

 

telinit 명령어 : 런레벨을 바꾸는 명령어 

 


 

 

# 서비스 유닛

systemctl 명령을 사용하여 시스템 서비스를 관리함

시스템 서비스 상태 보기, 시작, 멈춤, 재시작, 활성화, 비활성화 작업 수행 가능

=> 활성화, 비활성화는 부팅할때 자동으로 실행되게 할건지 안할건지

 

명령어: systemctl [options] command [units]

- 서브  command 에는 start, stop, reload, restart, status, enable, disable, is-active, is-enabled 등

- systemctl은 관리자 명령어로 root 권한이 필요하다. ((sudo 사용

 

 

 


 

시스템 종료에는 halt, systemctl reboot, shutdown 명령어 등을 사용 

 

 

 

 

# 시스템의 종료 절차

1. systemd 프로세스는 모든 프로세스에게 종료를 알림

2. 각 프로세스가 스스로 종료하도록 TERM(15) 시그널 보냄

3. 종료하지 않는 프로세스에겐 강제종료 KILL(9) 시그널 보냄

4. 파일시스템 잠그고 루트(/)파일 시스템 제외한 모든 파일 시스템을 언마운트

5. 시스템 호출 통해 커널에 재부팅 또는 종료 요청

 

 

시스템 종료할땐 매우 주의해야 한다. 

UNIX 시스템은 여러 사용자가 작업을 하고, background job이 수행중일 수 있고, 작업 중 저장되지 않은 데이터도 존재함

시스템 종료는 정확하고 올바른 절차를 통해 종료를 하는 것이 중요하다. 

 

 

 

 



출처: 한국방송통신대학교 UNIX 시스템 강의 5강

 

 

반응형
복사했습니다!