관리 메뉴

피터의 개발이야기

[Shell] 프로세스를 전체적으로 종료하는 방법, pkill, killall 본문

Linux/Shell Script

[Shell] 프로세스를 전체적으로 종료하는 방법, pkill, killall

기록하는 백앤드개발자 2025. 2. 1. 12:06
반응형

ㅁ 들어가며

ㅇ ffmpeg을 이용한 스트림 서비스 개발 작업을 하면서 ffmpeg 관련 프로세스를 모두 종료해야 할 때가 있다.

ㅇ ps 명령어와 kill 명령어를 조합하는 방법과 pkill, killall 명령어를 사용하는 방법으로 ffmpeg 프로스세를 일괄종료하는 스크립트를 작성해 보았다.

 

ㅁ ps와 kill 명령어

ffmpeg 프로세스 확인 및 종료

# ffmpeg 프로세스 확인
ps -ef | grep ffmpeg
# 종료
kill -9 <PID>

ㅇ 가장 기본적인 방법은 ps 명령어로 프로세스를 찾고 kill 명령어로 종료하는 것이다.

ㅇ 이 방법은 프로세스 ID(PID)를 직접 확인하고 종료할 수 있어 정확하지만, 여러 프로세스를 종료할 때는 번거로울 수 있다.

 

 

kill, grep, awk 명령어로 프로세스 종료

kill $(ps -ef | grep ffmpeg | grep -v grep | awk '{print $2}')

ㅇ 확인된 프로세스를 종료하기 위해 kill, grep, awk 명령어를 조합하였다.

  • ps -ef | grep ffmpeg: ffmpeg 관련 프로세스를 찾는다.
  • grep -v grep: grep 명령어 자체를 결과에서 제외한다.
  • awk '{print $2}': 프로세스 ID(PID)만 추출한다.
  • kill: 추출된 PID를 가진 프로세스를 종료한다.

 

강제 종료 (선택사항)

kill -9 $(ps -ef | grep ffmpeg | grep -v grep | awk '{print $2}')

 

ㅇ 일반적인 종료 신호로 프로세스가 종료되지 않을 경우, 강제 종료 옵션을 사용할 수 있다.

ㅇ -9 옵션은 SIGKILL 신호를 보내 프로세스를 강제로 종료한다.

 

ㅁ pkill 명령어 사용

pkill -9 -f ffmpeg

ㅇ pkill 명령어를 사용하면 프로세스 이름으로 직접 종료할 수 있어 더 편리하다.

ㅇ 이 명령어는 ffmpeg라는 이름이 포함된 모든 프로세스를 강제 종료한다.

-9 옵션은 SIGKILL 신호를 보내 즉시 종료하며, -f 옵션은 전체 명령줄을 대상으로 검색한다.

 

ㅁ killall 명령어 사용

killall -9 ffmpeg

ㅇ killall 명령어도 프로세스 이름으로 종료할 수 있는 유용한 도구하다.

ㅇ 이 방법은 정확히 ffmpeg라는 이름의 프로세스만 종료하므로, 더 안전할 수 있다.

 

ㅁ 마무리

 프로세스를 종료하는 방법을 정리하면서 ps와 kill 명령어 방법 외에 pkill, killall 명령어를 사용하여 ffmpeg 프로세스를 효과적으로 관리할 수 있었다. 

ㅁ 함께 보면 좋은 사이트

Linux에서 프로세스 종료하기: kill 명령어와 pkill 명령어 사용법
[유닉스/리눅스] 프로세스 관리 명령어(ps/pstree/top/kill/killall/pkill)

반응형
Comments