https://chanchan-father.tistory.com/473
[RHEL6] 프로세스 관리 명령어 2탄(kill, killall, lockfile, lsof, mkfifo)
6. kill(프로세스 종료) 1) 경로 : /bin/kill 2) 요약 : 프로세스 종료 3) 사용 방법 kill [-s 시그널] [-a] pid ... kill -l(엘) [시그널] 시그널(Signal)은 유닉스 시스템에서 프로세스간 통신을 하는 가장 오래된
chanchan-father.tistory.com
Graceful Shutdown ↔ Hard Shutdown
Signal
unix 시스템에서 프로세스간 통신을 하는 가장 오래된 방법으로 프로세스에 비동기적인 이벤트를 전달하는 데 사용
키보드 인터럽트나 에러 상황이 일어났을 때, 쉘이 자식 프로세스에 작업 명령을 보낼 때에도 사용
# 시그널 목록 확인
kill -l

SIGINT
프로그램 실행중 ctrl + c 입력시 SIGINT 시그널이 프로세스로 가고 프로그램이 종료됨
유저가 직접 프로그램 종료를 지시
SIGTERM
프로그램을 종료하는 일반적인 방법
SIGINT와 SIGTERM은 둘 다 catch가 가능
=> 시그널 핸들러를 만들 수 있다
※ 시그널 핸들러 : 특정 시그널을 받았을 때 실행하는 함수
프로그램별로 각 시그널을 전송받았을 때 자기만의 로직으로 처리할 수 있도록 하는 것
(if process.Get("SIGTERM") ~ )
| 항목 | SIGINT | SIGTERM |
| 시그널 번호 | 2 | 15 |
| 주 사용 목적 | 사용자가 작업 중단 | 시스템/관리자가 정상 종료 요청 |
| 대표 발생 | Ctrl+C | kill PID |
| 기본 동작 | 종료 | 종료 |
| 리소스 정리 가능 | 가능 | 가능 |
| 무시 가능 | 가능 | 가능 |
| 주 사용 환경 | 터미널에서 실행 중인 프로그램 | 서버, 데몬, 서비스 관리 |
사용자가 직접 중단할 때는 SIGINT, 서비스나 서버를 정상 종료할 때는 SIGTERM을 사용하는 것이 일반적
SIGKILL
프로세스 kill. catch가 불가능
=> 시그널 핸들러를 만들 수 없다
SIGTSTP
ctrl + z 입력시 프로세스 일시 정지. 백그라운드에서 stop 상태
프로세스는 대부분의 시그널을 무시할 수 있지만, 9번(SIGKILL)과 19번(SIGSTOP) 시그널은 무시할 수 없다
kill
kill 명령어로 프로세스에 종료 시그널을 보낼 수 있음
# 특정 프로세스 종료
kill ${pid}
# 강제 종료
kill -9 ${pid}
# 종료 후 재실행
kill -HUP ${pid}
killall
killall 명령어는 kill 명령어와 달리 프로세스 이름을 사용하여 프로세스를 종료할 수 있음
# 이름에 java가 들어가는 모든 프로세스 종료
killall java
# 같은 이름으로 여러 프로세스가 존재할 때는 프로세스 번호가 가장 빠른 프로세스를 종료시키면 나머지 같은 이름의 모든 프로세스도 자동으로 종료
# -u 명령어로 특정 사용자가 이용중인 모든 프로세스 종료
killall -u apache'OS > LINUX' 카테고리의 다른 글
| 20. 슈퍼유저와 사용자 전환 (0) | 2026.07.27 |
|---|---|
| 18. curl / telnet / ping / nc (0) | 2026.06.29 |
| 17. awk (0) | 2026.06.29 |
| 16. 네트워크 명령어 (0) | 2026.06.22 |
| 15. 문자열 검색 / 치환 (0) | 2026.06.12 |