프로세스
프로세스는 현재 시스템에서 실행 중인 프로그램을 뜻합니다.
사용자가 사용한 명령도 프로세스가 되어 실행되는데, 시스템에는 사용자가 실행한 프로세스 외에도 사용자 관리, 메모리 관리, 네트워크 접속 관리 등 다양한 기능을 수행하는 많은 프로세스가 실행되고 있습니다.
프로세스의 번호
각 프로세스는 고유한 번호를 갖고 있고 이를 PID 라 부릅니다.
PID는 1번부터 시작하고 프로세스가 실행되면서 하나씩 증가하여 부여됩니다.
프로세스 관련 명령어
ps : ps 명령의 옵션에 따라 자세한 프로세스 정보를 확인할 수 있습니다.
- -e : 시스템상의 모든 프로세스에 대한 정보를 출력한다.
- -u : 사용자의 프로세스를 출력한다.
- -l, -f : 전체 목록을 출력한다. (PPID / NICE / PRIORITY)
top : ps 와 달리 지속적인 모니터링 기능을 한다. (작업관리자와 유사)
uptime : 부하평균만 확인한다.
w : 부하 평균 + 현재 시스템에 접속 중인 사용자의 작업내역을 보여준다.
작업환경
shell 에서는 프로세스를 작업 (job) 단위로 관리를 합니다.
작업은 포그라운드 (foreground) 와 백그라운드 (background) 두 가지 방식으로 동작합니다.
- 포그라운드 : 작업이 종료되는 시점까지 다른 쉘 명령어를 수행할 수 없고 대기합니다.
- 백그라운드 : 작업을 하는 동시에 다른 명령어들을 실행시킬 수 있습니다.
동시에 여러 명령어들을 실행시키는 것을 멀티 태스킹 (multi-tasking)이라고 합니다.
포그라운드에서 실행 중인 작업은 ctrl + c로 종료할 수 있습니다.
백그라운드에서 명령어를 실행하기 위해서 뒤에 & 를 붙여줍니다.
백그라운드 상태에서는 바로 다른 명령어들을 실행할 수 있습니다.
jobs 명령어를 통해서 백그라운드에서 실행 중인 작업을 확인할 수 있습니다.
[1] 은 작업의 고유 번호입니다.
프로세스 신호 종류
신호 번호 | 신호 이름 | 설명 |
1 | HUP | 프로세스 종료 없이 구성파일 리로드 |
2 | INT | 키보드 인터럽트 |
3 | QUIT | 키보드 종료 및 덤프 생성 |
9 | KILL | 즉각적인 강제적 종료 |
15 | TERM | 정상적인 종료 |
18 | CONT | 중지된 프로세스 다시 시작 |
19 | STOP | 프로세스 동작 중지 |
20 | TSTP | 프로세스 동작 중지 |
신호 전달 명령어
- kill : 단일 프로세스에 PID를 이용해서 신호를 전달한다.
kill [SIG] [PID 또는 %JID]
- killall : 프로그램파일의 이름(명령어)을 이용해서 여러 프로세스를 동시에 제어한다.
killall [SIG] [PATTERN]
- pkill : 이름+특성을 이용해서 여러 프로세스를 제어한다.
- pgrep : pkill과 동일한 사용법으로 해당하는 PID 만 확인한다.
kill -18 명령으로 중지된 프로세스를 다시 시작시켰습니다.
kill -9로 프로세스를 강제종료 합니다.
'Java' 카테고리의 다른 글
Apache 로드밸런싱 + 세션 클러스터링 (0) | 2022.05.18 |
---|---|
Tomcat에 Context 추가하기 (0) | 2022.04.29 |
[Linux] 크론탭, Crontab 설정 (0) | 2022.04.25 |
click 이벤트 중복 제어 (0) | 2022.03.11 |
IntelliJ + Github 연동하기 (0) | 2022.03.09 |