OS/LINUX

19. 종료

by coldplayer83 2026. 7. 2.
728x90
반응형

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
728x90
반응형

'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

TOP

Designed by 티스토리