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강
'리눅스' 카테고리의 다른 글
리눅스 sudoers 파일 설정 (0) | 2024.10.06 |
---|---|
리눅스 usb 마운트하기 (2) | 2024.09.29 |
리눅스 부팅 과정 정리 (0) | 2024.09.29 |
VMware 가상머신에 로키 리눅스 설치하기 (0) | 2024.09.21 |
로키 리눅스 설치 방법 (2) - 부팅 USB를 사용하여 데스크탑 PC에 설치 (5) | 2024.09.15 |