일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- MSBing
- nmcli
- 리다이렉션
- firewalld
- vgcreate
- docker network
- lvcreate
- mount
- newbingai
- docker image
- swapon
- 랜카드인식불량
- yum
- docker
- ssh
- pvcreate
- chatGPT
- 같은폴더
- journalctl
- Kubernetes
- vagrant kubernetes
- M365필터
- permission
- chmod
- tar
- 프로세스
- HTTPD
- 날짜변경
- ansible
- 엑셀파일명변경
- Today
- Total
becool
20210421 (수) 본문
9:33 review
systemd
리눅스 운영체제에서 모든 프로세스의 부모 프로세스가 되는 프로세스
기존 init을 대체하는 새로운 PID 1번 프로세스
Systemd 특징
- init 프로세스에 대한 호환성 제공
- Systemd UNIT 사용하여 시스템 제어
- 시스템 부팅시 병렬로 서비스 시작
- 의존성 기반 서비스 제어
- systemctl 명령어 기반의 제어 및 명령어 커스터마이징 불가
- 시스템 종료시 실행중인 서비스만 종료
- 서비스 기본 timeout 지정(기본값 5분)
- 통합 로그 관리(systemd-journald)
Systemd UNIT 종류
-service unit : 서비스를 관리하기 위한 UNIT
-device unit : Device를 관리하기 위한 UNIT
-mount unit : mount를 관리하기 위한 UNIT
-target unit : 부팅 타겟(모드)를 관리하기 위한 UNIT
-path unit : PATH를 관리하기 위한 UNIT
-timer unit : UNIT을 주기적으로 실행해야하는 경우 사용하는 UNIT
-socket unit : IPC통신, 네트워크 소켓을 관리하는 UNIT
- 유닛 경로 : /usr/lib/systemd/system/ /etc/systemd/system/ /run/systemd/system/
UNIT 파일 구성
[UNIT] 섹션 : 유닛 설명, 유닛 동작, 다른 유닛과의 의존성
[UNIT TYPE] 섹션 : (service, device …… socket 등) 유닛타입에 대한 구성
[INSTALL] 섹션 : 부팅시 자동 실행에 관련된 구성
systemctl SUBCOMMAND [UNIT] [option]
# systemctl list-units
[root@localhost system]# systemctl list-units
UNIT : 유닛 이름
LOAD : 설치 상태 loaded 인 경우 정상 설치됨
ACTIVE : UNIT 실행여부 (ACTIVE/INACTIVE)
SUB : UNIT실행 세부 상태
UNIT실행상태 | 세부설명 |
running | UNIT 정상 실행 상태 |
exited | UNIT 실행되었지만 systemd에서 관리하지 않는 상태 |
waiting | UNIT이 이벤트를 대기하는 상태 |
mounted | 마운트된 상태 |
plugged | Device Unit이 연결된 상태 |
dead | UNIT이 종료된 상태 |
listening | Socket Unit이 대기하는 상태 |
DESCRIPTION : Unit 설명
# systemctl list-unit-files
[root@localhost system]# systemctl list-unit-files
enabled : 부팅시 자동 시작
disabled : 부팅시 자동 시작하지 않음
static : 사용자가 직접 실행 불가하며 다른 UNIT에 의해 실행됨.
masked : mask 상태
# systemctl status [UNIT]
[root@localhost system]# systemctl status cups.service
cups.service - CUPS Printing Service
①Loaded: loaded (/usr/lib/systemd/system/cups.service; ②enabled; vendor preset: enabled)
③Active: active (running) since ④Wed 2021-04-21 09:48:25 KST; 1h 4min ago
⑤Main PID: 1257 (cupsd)
Tasks: 1
CGroup : /system.slice/cups.service
└─1257 /usr/sbin/cupsd -f
①로드 여부②부팅시자동시작여부 enabled/disabled ③ 작동상태 ④작동 변경시점(시작 or 중지 시점) ⑤PID
# systemctl start UNIT
# systemctl stop UNIT
# systemctl restart UNIT
# systemctl reload UNIT
# systemctl enable UNIT
# systemctl disable UNIT
# systemctl mask UNIT
# systemctl unmask UNIT
# systemctl UNIT
=======================================
systemd 부팅
target
multi-user.target : CLI
graphical.target : GUI
default.target : 시스템 기본 부팅 타겟
local-fs.target : 파일시스템 마운트
[root@localhost ~]# systemctl isolate multi-user.target
[root@localhost ~]# who -r
run-level 3 2021-04-21 12:15 last=5
※ 전환 과정에서 진행중이던 프로세스나 작업 등은 손실되고 종료되게 되므로 주의
작업저장 및 정상적으로 종료 후 전환이 필요함.
=======================================
root 사용자 암호 분실
1. 시스템 재부팅
2. 부트로더 카운트다운 중단 (enter키 이외의 임의의 키, 방향키가 일반적임)
3. 커서를 부팅할 커널 항목으로 이동
4. e를 눌러 선택한 항목 편집
5. 커서를 커널 명령줄 (linux로 시작하는 행)으로 이동한다. (해당행 마지막으로 커서이동 : end key 사용)
6. rd.break를 추가한다. 이 옵션을 사용하면 initramfs 에서 실제 시스템으로 제어 권한이 이동하기 직전에 중단된다.
7. Ctrl + x 를 눌러 변경 사항을 적용하여 부팅한다.
#mount
/dev/mapper/centos-root on /sysroot type xfs (ro,relatime,attr2,inode64,noquota)
switch_root:/# mount -o remount,rw /sysroot →/sysroot를 읽기/쓰기로 다시 마운트 한다.
#mount
/dev/mapper/centos-root on /sysroot type xfs (rw,relatime,attr2,inode64,noquota)
switch_root:/# chroot /sysroot →/sysroot 가 파일 시스템 트리의 루트로 취급되는 chroot 환경으로 전환한다.
sh-4.2# passwd root → 새 루트 암호를 설정한다.
sh-4.2# touch /.autorelabel → 레이블이 없는 모든 파일이 부팅중 다시 레이블(relabel)되도록 지정한다.
exit 2회 (첫번째는 chroot환경종료, 두번째는 initramfs 디버그 쉘 종료)
sh-4.2# exit
switch root:/# exit
※ SELinux의 보안 레이블 부분을 깨게 되므로 전체 파일을 다시 레이블하는 것으로 이해하면 됨.
========================================
부팅 설정
target (emergency, rescue)
커널항목에서 e → linux 시작행 : systemd.unit=emergency.target 입력 후 Ctrl X 재부팅 : ro권한
커널항목에서 e → linux 시작행 : systemd.unit=rescue.target 입력 후 Ctrl X 재부팅 : rw권한
root사용자의 password 필요
========================================
트러블슈팅
문제 | 결과 |
손상된 FILE SYSTEM | systemd 에서 파일 시스템 복구를 시도한다. 문제가 심각하여 자동 수정이 안되면 emergency 쉘로 drop |
/etc/fstab에서 참조하는 장치 또는 UUID 없음 | systemd는 설정된 시간 동안 장치가 사용가능할 때까지 대기한다. 장치를 사용할 수 없는 경우 제한시간이 지나면 emergency 쉘로 drop |
/etc/fstab에 마운트 지점이 없음 | emergency 쉘로 drop |
/etc/fstab에 잘못된 마운트 옵션이 지정 | emergency 쉘로 drop |
emergengy shell 에서 /etc/fstab 수정 시, read only 로 인한 편집 불가한 경우
mount -o remount,rw /
즉, rw권한을 최상위 디렉토리에 부여한 후에 다시 시도해야함.
'linux' 카테고리의 다른 글
20210423 (금) (0) | 2021.04.23 |
---|---|
20210422 (목) (0) | 2021.04.22 |
20210420 (화) (0) | 2021.04.20 |
20210419 (월) (0) | 2021.04.19 |
20210416 (금) (0) | 2021.04.16 |