프로세스란 현재 시스템에서 실행중인 프로그램을 뜻한다.

프로세스는 부모-자식 관계를 가지고 있는데, 필요에 따라 부모 프로세스 (Parent Process)는 자식 프로세스(Child Process)를 생성하고 자식 프로세스는 또 다른 자식 프로세스를 생성 가능하다.
트리구조를 뜻하는 듯 하다.
특정 서비스를 제공하기 위해 존재하며 리눅스 커널에 의해 실행된다.
자식 프세스가 아직 실행중인데 부모 프로세스가 먼저 종료된 자식 프로세스
- 자식 프로세스가 실행을 종료했는데도 프로세스 테이블 목록에 남아 있는 경우
- 좀비 프로세스가 증가하면 프로세스 테이블의 용량이 부족해서 일반 프로세스가 실행되지 않을 수도 있다.
묶어서 사용할 수 있고, 붙임표로 시작한다.(예 : -ef)
- -e : 시스템에서 실행 중인 모든 프로세스의 정보를 출력
- -f : 프로세스의 자세한 정보를 출력함
- -u uid : 특정 사용자에 대한 모든 프로세스 정보를 출력
- -p pid : pid로 지정한 특정 프로세스의 정보를 출력
묶어서 사용할 수 있고 붙임표로 시작하지 않음(예 : aux)
- -a : 터미널에서 실행한 프로세스의 정보를 출력
- -u : 프로세스 소유자 이름, CPU 사용량, 메모리 사용량 등 상세 정보를 출력
- -x : 시스템에서 실행 중인 모든 프로세스의 정보를 출력
붙임표 두 개로 시작함(예 : --pid)
- --pid PID 목록 : 목록으로 지정한 특정 PID정보를 출력
아래 옵션은 자주 사용하니 외워두자
#시스템에서 실행 중인 전체 프로세스의 더 자세한 정보를 출력
ps -ef | more
ps aux
#ps 명령을 이용해 특정 프로세스 정보 검색하기
ps -ef | grep bash
pgrep 명령은 지정한 패턴과 일치하는 프로세스의 정보를 출력함.
pgrep [옵션] 패턴
pgrep -x bash
기말고사엔 안나올거라고 하셨다.
프로세스에 무언가 발생했음을 알리는 간단한 메시지이다.
리눅스에서 지원하는 시그널의 목록은 kill -l 명령으로 알 수 있다.
| 시그널 | 번호 | 기본 처리 | 의미 |
|---|---|---|---|
| SIGHUP | 1 | 종료 | 터미널과의 연결이 끊어졌을때 발생 |
| SIGINT | 2 | 종료 | 인터럽트로 사용자가 Ctrl+c를 입력하면 발생 |
| SIGQUIT | 3 | 종료, 코어덤프 | 종료 신호로 사용자가 Ctrl+\를 입력하면 발생 |
| SIGKILL | 9 | 종료 | 강제 종료 |
| SIGALRM | 14 | 종료 | 알람에 의해 발생 |
| SIGTERM | 15 | 종료 | kill 명령이 보내는 기본 시그널 |
kill -9 프로세스ID
top 명령은 현재 실행 중인 프로세스에 대한 정보를 주기적으로 출력해준다.