자율 학습/학습
[Linux] 프로세스 종료 명령어 pkill, kill, fuser 비교
60cod
2024. 6. 12. 14:06
프로세스를 종료시키는 다양한 명령어들이 있습니다.
fuser, pkill, kill은 모두 프로세스를 종료시키는 데 사용되지만, 각기 다른 방식으로 동작합니다.
💡 fuser
fuser 명령어는 특정 파일, 디렉터리 또는 포트를 사용하는 프로세스를 식별하고, 해당 프로세스를 종료할 수 있습니다.
주로 네트워크 포트를 사용 중인 프로세스를 찾고 종료하는 데 유용합니다.
사용 예시:
# 특정 포트를 사용하는 프로세스를 식별
sudo fuser -n tcp 80
# 특정 포트를 사용하는 프로세스를 종료
sudo fuser -k -n tcp 80
- 옵션
- -k : 해당 파일을 사용하는 프로세스를 종료
- -n : 네임스페이스 지정 (예: tcp, udp, etc.)
💡 pkill
pkill 명령어는 프로세스 이름이나 다른 속성에 기반하여 프로세스를 종료합니다.
프로세스 이름을 기반으로 프로세스를 종료하는 경우 유용합니다.
사용 예시:
# 이름이 nginx인 모든 프로세스를 종료
sudo pkill nginx
# 이름이 nginx인 프로세스를 SIGTERM 시그널로 종료
sudo pkill -SIGTERM nginx
- 옵션 → 사용할 시그널 지정
- -SIGTERM : 종료 시그널 = Signal Terminate (기본값)
- -SIGKILL : 강제 종료, 즉시 종료 시그널 = Signal Kill
💡 kill
kill 명령어는 특정 PID(프로세스 ID)를 가진 프로세스를 종료합니다.
특정 프로세스 ID를 알고 있는 경우에 유용합니다.
사용 예시:
# PID가 1234인 프로세스를 종료
sudo kill 1234
# PID가 1234인 프로세스를 강제 종료 (SIGKILL)
sudo kill -9 1234
- 옵션
- -9 : SIGKILL 시그널을 보내 프로세스를 강제 종료
- -15 : SIGTERM 시그널을 보내 프로세스를 정상 종료 (기본값)
요약
- fuser: 특정 파일, 디렉터리, 포트를 사용하는 프로세스를 식별하고 종료. 파일 시스템과 네트워크 포트와 관련된 프로세스 종료에 유용.
- pkill: 프로세스 이름이나 속성을 기준으로 프로세스를 종료. 특정 이름을 가진 다수의 프로세스를 종료할 때 유용.
- kill: 특정 PID를 가진 프로세스를 종료. 개별 프로세스 종료에 유용.