반응형
Process 관리
Process
리눅스 시스템은 한 마디로 Multi-user, Multi-tasking System이다.
즉 여러 사람이 동시에 시스템에 접속하여 동시에 여러 가지 일들을 처리할 수 있는 시스템이며,
여기서 여러가지 일, 작업, Task 등이 바로 Process이다.
PID: process id. 프로세스 식별을 위한 운영체제 차원에서 부여한 고유번호.
R : run 실행중
S : sleep 잠시 잠들어 있는 상태 (20초 이내)
I : idle 유효상태 (20초 이상)
Z : 좀비 process
D: Disk 입출력 대기 상태
# 현재 실행중인 프로세스 보기
root@kwc:~# ps
PID TTY TIME CMD
1264 pts/2 00:00:00 sudo
1265 pts/2 00:00:00 bash
7470 pts/2 00:00:00 ps
# 전체 프로세스 정보 보기
root@kwc:~# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 10:30 ? 00:00:00 /sbin/init
root 2 0 0 10:30 ? 00:00:00 [kthreadd]
root 3 2 0 10:30 ? 00:00:00 [rcu_gp]
root 4 2 0 10:30 ? 00:00:00 [rcu_par_gp]
root 5 2 0 10:30 ? 00:00:00 [slub_flushwq]
root 6 2 0 10:30 ? 00:00:00 [netns]
root 8 2 0 10:30 ? 00:00:00 [kworker/0:0H-events_highpri]
...
# http가 실행중인지 검색
root@kwc:~# ps -ef | grep http
root 7475 1265 0 12:32 pts/2 00:00:00 grep --color=auto http
# bash가 실행중인지 검색
root@kwc:~# ps -ef | grep bash
j 1055 718 0 10:30 tty1 00:00:00 -bash
root 1074 1073 0 10:30 pts/0 00:00:00 -bash
j 1254 1253 0 10:54 pts/1 00:00:00 -bash
root 1265 1264 0 10:54 pts/2 00:00:00 -bash
root 7477 1265 0 12:33 pts/2 00:00:00 grep --color=auto bash
# 사용 가능한 모든 시그널 목록 보기
root@kwc:~# kill -l
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP
6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1
11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM
16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ
26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR
31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3
38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8
43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7
58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2
63) SIGRTMAX-1 64) SIGRTMAX
root@kwc:~# top # table of process 실행중인 프로세스들과 시스템 리소스 사용량 등의 정보를 실시간으로 확인
# pstree: process tree 실행중인 프로세스들을 계층 구조로 트리 형태로 출력
root@kwc:~# pstree
systemd─┬─ModemManager───2*[{ModemManager}]
├─cron
├─dbus-daemon
├─irqbalance───{irqbalance}
├─login───bash───sudo───sudo───bash
├─multipathd───6*[{multipathd}]
├─networkd-dispat
├─packagekitd───2*[{packagekitd}]
├─polkitd───2*[{polkitd}]
├─rsyslogd───3*[{rsyslogd}]
├─snapd───10*[{snapd}]
├─sshd───sshd───sshd───bash───sudo───sudo───bash───pstree
├─systemd───(sd-pam)
├─systemd-journal
├─systemd-logind
├─systemd-network
├─systemd-resolve
├─systemd-timesyn───{systemd-timesyn}
├─systemd-udevd
├─udisksd───4*[{udisksd}]
└─unattended-upgr───{unattended-upgr}
# jobs 백그라운드 job 보기
root@kwc:~# jobs
[1]+ Stopped cat
# 상세히 보기
root@kwc:~# jobs -l
[1]+ 7983 Stopped cat
Linux 부팅과 커널의 이해
리눅스 부팅 순서
1. Power On
2. ROM-BIOS
3. 부트 매니저 (GRUB)
4. 커널 로드
5. 파일 시스템
6. 파일 시스템 마운트
7. 시스템 초기화 (init, systemd)
8. 로그인
부팅시 파일 실행 순서
0. pweroff.target - halt
1. rescue.target - single user mode
2. multi-user.target - Network service 없는 CLI
3. multii-user.target - CLI 정상적으로 사용
4. Not used - 사용하지 않음.
5. graphical.target - GUI 3 + 그래픽 환경
6. reboot.target - 시스템 재부팅
Root password 분실 시 복구 방법
부팅할 때 Shift + ESC를 누른 후 e 선택하여 EDIT 모드로 진입.
linux 라인 끝에 ro 다음 init=/bin/bash 추가
^X 눌러 저장 (Ctrl + x)
#passwd // 새로운 비밀번호 입력
#reboot -f
커널 보기
root@kwc:~# cd /boot
# /boot 디렉터리에는 일반적으로 부팅에 필요한 커널 이미지 파일과 부트 로더 관련 파일들이 저장되어 있음.
root@kwc:/boot# uname -r
5.15.0-71-generic
# /boot 디렉터리 안에서 uname -r 명령어를 실행하면 현재 사용중인 Linux 커널의 버전이 출력됨.
root@kwc:/boot# file /boot/vmlinuz-5.15.0-71-generic
/boot/vmlinuz-5.15.0-71-generic: Linux kernel x86 boot executable bzImage, version 5.15.0-71-generic (buildd@lcy02-amd64-044) #78-Ubuntu SMP Tue Apr 18 09:00:29 UTC 2023, RO-rootFS, swap_dev 0XB, Normal VGA
root@kwc:/boot#
리눅스의 구조
반응형
'[네이버클라우드] AIaaS 개발자 과정 > Linux' 카테고리의 다른 글
[네이버클라우드캠프] 2023.5.1 Linux(1) - log 관리, 예약작업(atd), 반복작업(crond) (4) | 2023.05.01 |
---|---|
[네이버클라우드캠프] 2023.4.28 Linux(2) - 사용자 관리, 소유권과 허가권 (2) | 2023.04.30 |
[네이버클라우드캠프] 2023.4.27 Linux(2) - 패키지 관리, SQLite 패키지 수동 설치 및 표만들기 실습 (0) | 2023.04.30 |
[네이버클라우드캠프] 2023.4.27 Linux(1) - UbuntuLinux 설치 및 기본설정 (0) | 2023.04.30 |
[네이버클라우드캠프] 2023.4.26 Linux(3) - RockyLinux 설치 (파티션 분할), 설치 후 기본 설정 (0) | 2023.04.30 |