Linux에서 프로세스를 관리하는 것은 시스템 관리자와 개발자 모두에게 기본적인 기술입니다. 오작동하는 애플리케이션의 문제를 해결하든 서비스를 중지하든, 프로세스를 안전하게 종료하는 방법을 아는 것은 필수적입니다. 이 가이드에서는 상승된 권한으로 시작된 프로세스를 포함하여 프로세스를 효과적으로 관리하는 단계를 안내합니다. 다루는 명령어는 kill, pkill 이며, 좀비 프로세스 처리 방법도 설명합니다.
상승된 권한으로 시작된 프로세스 종료하기
프로세스가 sudo 로 시작된 경우, 이를 종료하려면 동일한 수준의 권한이 필요합니다. 이러한 프로세스를 안전하게 중지하려면 다음 단계를 따르세요:
1. 프로세스 ID(PID) 찾기
첫 번째 단계는 ps 명령을 사용하여 대상 프로세스의 프로세스 ID(PID)를 찾는 것입니다.
ps -ef | grep <process_name>
이 명령은 PID를 포함하여 프로세스에 대한 자세한 정보를 표시합니다.
2. 프로세스 중지하기
PID를 확인했으면, kill 명령을 상승된 권한으로 사용하여 프로세스를 종료하세요:
sudo kill -15 <PID>
핵심 사항:
- SIGTERM(15): 이 신호는 프로세스에 정중하게 중지를 요청하여 종료 전에 리소스를 정리할 수 있게 합니다.
- SIGKILL(9): 이 신호는 최후의 수단으로만 사용하세요. 정리 없이 프로세스를 강제로 종료하므로 파일이 손상되거나 작업이 불완전하게 끝날 수 있습니다.
pkill 을(를) 사용한 간편한 방법
더 빠른 대안으로, pkill 명령을 사용하면 PID를 수동으로 찾지 않고 이름으로 프로세스를 종료할 수 있습니다.
1. 프로세스 확인하기
프로세스를 종료하기 전에 pgrep 을(를) 사용하여 일치하는 프로세스를 확인하세요:
pgrep -l <process_name>
이 명령은 지정된 이름과 일치하는 모든 프로세스를 해당 PID와 함께 나열합니다.
2. 프로세스 종료하기
확인했으면 pkill 을(를) 사용하여 종료 신호를 보내세요:
pkill <process_name>
프로 팁:잘못된 프로세스를 실수로 종료하지 않도록 pgrep 의 결과를 항상 다시 확인하세요.
좀비 프로세스 처리하기
좀비 프로세스는 실행이 완료되었지만 부모 프로세스가 정리해 주기를 기다리며 프로세스 테이블에 남아 있는 프로세스입니다. 좀비 프로세스를 직접 종료할 수는 없지만, 부모 프로세스를 처리함으로써 해결할 수 있습니다.
1. 좀비 프로세스 식별하기
좀비 프로세스를 식별하려면 ps 명령을 사용하세요. 출력에서는 다음과 같이 표시됩니다:<defunct>
ps aux | grep -i <process_name>
2. 좀비 프로세스 해결하기
좀비 프로세스를 정리하려면 다음 단계를 따르세요:
a. 부모 프로세스 식별하기
좀비 프로세스의 부모 프로세스 ID(PPID)를 찾으세요:
ps -o ppid= -p <zombie_pid>
b. 부모 프로세스 종료 또는 재시작하기
부모 프로세스를 종료하거나 재시작하여 좀비를 정리할 수 있게 하세요:
sudo kill -15 <parent_pid>
부모 프로세스를 재시작할 수 없는 경우, 최후의 수단으로 시스템을 재부팅해야 할 수도 있습니다.
프로세스 관리 모범 사례
- 신호를 현명하게 사용하세요: 프로세스가 정상적으로 종료될 수 있도록
SIGTERM(15)와 같은 신호를SIGKILL(9)보다 항상 우선적으로 사용하세요. - 명령을 다시 확인하세요:
pgrep또는pkill와 같은 도구를 사용할 때는 의도하지 않은 결과를 피하기 위해 결과를 확인하세요. - 시스템 리소스 모니터링: 최적의 성능을 유지하기 위해 좀비 프로세스나 리소스를 많이 사용하는 애플리케이션이 있는지 시스템을 정기적으로 모니터링하세요.
참고 자료
자세한 내용은 다음 공식 리소스를 확인하세요: