[Shell] 프로세스를 전체적으로 종료하는 방법, pkill, killall
ㅁ 들어가며
ㅇ 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)