1. Process
현재 시스템에서 실행 중인 프로그램을 의미
- App이 실행되어 Memory에 load 된 상태
- Memory와 HDD의 속도 차이는 약 1,000배
1.1. 부모-자식 관계

- 리눅스에서 모든 프로세스는 부모-자식 관계를 가지고 있다.
- 리눅스 시스템을 부팅할 때 스케줄러가 실행한 프로세스인 systemd와 kthreadd 프로세스를 제외한 모든 프로세스는 부모 프로세스가 존재한다.
1.2. 프로세스 번호
각 프로세스는 고유한 번호를 가지고 있으며 이를 PID라고 한다.
- PID는 1번부터 시작하며, 프로세스가 실행되면서 하나씩 증가하여 부여된다.
- 리눅스 부팅 시 PID 1번 systemd 프로세스와 2번 kthreadd 프로세스가 차례로 실행된다.
1.3. 프로세스의 종류
데몬 프로세스
- 특정 서비스를 제공하기 위해 존재하며, 리눅스 커널에 의해 실행된다.
- 평소에는 대기 상태로 있다가 서비스 요청이 들어오면 서비스를 제공
고아 프로세스
- 자식 프로세스가 아직 실행 중인데 부모 프로세스가 먼저 종료된 프로세스
좀비 프로세스
- 자식 프로세스가 실행을 종료했는데도 프로세스 테이블 목록에 남아있는 경우
2. 명령어
2.1. ps
현재 실행 중인 프로세스의 정보를 출력
형식
- ps [옵션]
옵션
- -e : 시스템에서 실행 중인 모든 프로세스의 정보를 출력
- -f : 프로세스의 자세한 정보 출력
- a : 터미널에서 실행한 프로세스의 정보 출력
- u : 프로세스의 소유자 이름, CPU 사용량, 메모리 사용량 등 상세 정보 출력
- x : 시스템에서 실행 중인 모든 프로세스의 정보 출력
2.2. kill
지정한 시그널을 프로세스에 보냄
형식
- kill [-시그널] PID
옵션
- -l : 시그널 목록 출력
- 2 : 인터럽트 시그널을 보냄 (ctrl+c)
- 9 : 프로세스 강제 종료
- 15 : 프로세스와 관련된 파일 정리 후 종료 (종료되지 않는 프로세스가 있을 수 있음)
- 18 : 프로세스 재개
- 19 : 프로세스 멈춤
2.3. 로그인한 사용자 정보 출력
형식
- w
- TTY: 콘솔 접속/로그인(마우스, 키보드, 모니터를 이용하여 접속)
- pts: 원격 접속/로그인
3. 실습
3.1. 명령어 실습
※ kill 시그널 목록 출력

※ 프로세스 확인 및 강제 종료 (kill -9 PID)


※ 프로세스 멈춤 (kill -19 PID)


※ 프로세스 재개 (kill -18 PID)


※ 로그인한 사용자 정보 출력

3.2. 팀별 실습
※ 로그인한 사용자 정보 출력
- 팀원들이 접속 중인 것 확인
- 접속한 팀원의 Host PC IP가 정상적으로 출력되는지 확인한다.

※ 외부에서 접속하여 프로세스 실행 (팀원 Host PC)

※ 실행 중인 프로세스 확인

※ 실행 중인 프로세스 강제 종료

※ 프로세스 정상적으로 종료되었는지 확인

※ 프로세스 확인 후 프로세스 멈춤

※ 프로세스 stop 확인 (팀원 Host PC)

※ 프로세스 재개

※ 프로세스가 다시 실행되는지 확인 (팀원 Host PC)

※ 프로세스 강제 종료

※ 프로세스 종료 확인 (팀원 Host PC)

'Linux' 카테고리의 다른 글
| 30. CentOS7 : Process - foreground & background (0) | 2022.05.31 |
|---|---|
| 25. CentOS7 : Proxy (0) | 2022.05.24 |
| 24. CentOS7 : DB-웹 서버 연결 (PHP) (0) | 2022.05.24 |
| 23. CentOS7 : DB Server/Client 설치 및 실행 (0) | 2022.05.24 |
| 22. CentOS7 : SSL(3) - http 암호화 (0) | 2022.04.26 |