프로세스 초기화 및 부팅 🚀
init vs systemd
- 리눅스가 부팅될 때 가장 먼저 실행되는 최상위 프로세스(PID 1) 를 말합니다.
init: 전통적인 리눅스 시스템에서 사용되던 프로세스입니다. 다른 모든 프로세스를 fork 방식으로 생성하고 관리합니다.systemd: CentOS 7부터 도입된 새로운 초기화 시스템입니다. 기존init을 대체하며, 병렬 처리 등으로 부팅 속도를 개선했습니다.
💡 Tip 일반적인 리눅스 설명에서는
init이 PID 1이라고 하지만, CentOS 7 이상에서는systemd가 PID 1을 가집니다.
이더넷 카드 장치명
- CentOS 버전에 따라 이더넷 카드의 기본 장치명 형식이 다릅니다.
- CentOS 6 이하:
eth0 - CentOS 7 이상:
enp0s3
- CentOS 6 이하:
프로세스 관리 및 모니터링 📊
프로세스 확인 명령어
ps: 현재 실행 중인 프로세스의 상태를 보여줍니다.
| 옵션 | 설명 |
|---|---|
a | 다른 사용자의 프로세스를 포함한 모든 프로세스 출력 |
u | 사용자 이름과 프로세스 시작 시간 출력 |
x | 터미널에 종속되지 않은 모든 프로세스 출력 |
e | 모든 프로세스에 대한 환경 변수까지 출력 |
f | 프로세스 간의 부모-자식 관계를 트리 구조로 출력 (PPID 확인) |
l | NI(Nice), PRI(Priority) 등 상세 정보 출력 |
ef | STIME (프로세스 시작 시간) 등 전체 정보 확인 |
aux | RSS (실제 메모리 사용량), TIME (총 CPU 사용 시간) 등 확인 |
![]() |
| ps 상태 코드 | 설명 |
|---|---|
D | 중단 불가능한 대기 상태 (Uninterruptible Sleep) |
S | 중단 가능한 대기 상태 (Interruptible Sleep) |
T | 작업 제어 신호에 의해 중지된 상태 (Stopped) |
Z | 좀비 프로세스 (Zombie) |
R | 실행 중 또는 실행 대기 상태 (Running or Runnable) |
N | 우선순위가 낮아진 상태 |
< | 우선순위가 높아진 상태 |
-
pstree: 실행 중인 프로세스를 부모-자식 관계의 트리 구조로 시각화하여 보여줍니다.
-
top: 시스템의 전반적인 상태와 실행 중인 프로세스 정보를 실시간으로 보여주는 작업 관리자입니다.-d: 갱신 간격(초) 지정. 예:top -d 1-p: 특정 PID의 정보만 모니터링. 예:top -p 8080
시그널(Signal)과 프로세스 종료
시그널은 프로세스에 특정 이벤트를 알리는 방법입니다.
-
1
SIGHUP: 재시작 (터미널 종료 시 발생) -
2
SIGINT: 인터럽트 (Ctrl+C) -
9
SIGKILL: 강제 종료 (무시할 수 없음) -
15
SIGTERM: 정상 종료 (기본값) -
19
SIGSTOP: 일시 정지 -
kill: PID를 사용하여 프로세스에 시그널을 보냅니다. 기본적으로 15번(SIGTERM) 시그널을 사용합니다.kill [PID]kill -9 [PID](강제 종료)
-
killall: 프로세스 이름을 사용하여 관련된 모든 프로세스에 시그널을 보냅니다.
백그라운드 프로세스 관리
jobs: 현재 셸 세션에서 실행 중인 백그라운드 작업 목록을 보여줍니다.nohup: 사용자가 로그아웃하거나 터미널을 종료해도 프로세스가 계속 실행되도록 합니다. 보통 백그라운드 실행(&)과 함께 사용됩니다.nohup [명령어] &
- 백그라운드 프로세스 종료: Job 번호 앞에
%를 붙여kill명령어로 종료합니다.kill %2(Job 번호가 2번인 프로세스 종료)
프로세스 우선순위 스케줄링 ⚖️
nice/renice: 프로세스의 실행 우선순위를 조정하는 명령어입니다.- NI (Nice 값): 사용자가 설정하는 값 (-20 ~ 19). 낮을수록 우선순위가 높습니다.
- PRI (Priority 값): 커널이 실제로 사용하는 우선순위 값.
nice: 새로운 프로세스를 시작할 때 우선순위를 지정합니다.nice -n 5 [프로세스명](우선순위 낮춤)nice -n -10 [프로세스명](우선순위 높임, root 권한 필요)
renice: 이미 실행 중인 프로세스의 우선순위를 PID를 사용하여 변경합니다.
데몬(Daemon) 프로세스 ⚙️
- 데몬: 시스템이 부팅될 때 실행되어 백그라운드에서 주기적이고 지속적인 서비스 요청(웹, DB 등)을 처리하는 프로세스입니다. 이름 뒤에
d가 붙는 경우가 많습니다 (예:sshd). - 실행 방식:
- Standalone 방식: 항상 메모리에 상주하며 요청을 대기. 응답 속도가 빠릅니다. (예: 웹서버, 메일서버)
- inetd 방식: 요청이 들어올 때만 관련 데몬을 활성화하고, 접속 종료 시 자동으로 종료. 메모리를 절약할 수 있습니다.
주기적 작업 스케줄링 (cron) ⏰
cron: 특정 시간에 특정 명령이나 스크립트를 주기적으로 실행하도록 예약하는 데몬입니다.crontab:cron작업을 설정하는 명령어 및 설정 파일입니다.- 시간 형식:
분(0-59) 시(0-23) 일(1-31) 월(1-12) 요일(0-7) -e: 작업 편집-l: 작업 목록 확인-r: 모든 작업 삭제
- 시간 형식:
- 설정 파일 경로:
/var/spool/cron/[사용자명]
